多线程中读写
如果一个复杂结构体,需要多线程读,我们可以使用Arc包裹,避免多次内存分配
如果一个变量,需要多线程读写,我们必须使用Mutex包裹,否则肯定无法编译
这里的SubListTrait就是上节课从零实现消息中间件...不要在tokio框架中使用标准库中的channel和mutex
泛型 & async
因为ServerState中的sublist,他需要在多个tokio的task之间传递,所以我们要求他除了实现SubListTrait...) {
}
}
如何使用
这里用到了tokio的使用方式,为了简化使用,tokio提供了两个宏main和test,他们位于tokio-macros这个crate下面.....");
let s: Server = Server::default();
s.start().await
}
代码实现
use crate::client...::net::{TcpListener, TcpStream};
use tokio::sync::Mutex;
#[derive(Debug, Default)]
pub struct Server