mpsc::Sender克隆与用Arc包裹实现线程共享的区别疑问
mpsc::Sender克隆与用Arc包裹实现线程共享的区别疑问
最近我在开发一个Rust客户端,定义了这么个结构体:
struct Client { tx: std::sync::mpsc::Sender<String>, some_other_stuff: i32, }
最开始我要在多个线程里共享这个Client实例,就直接把它用Arc<Client>包起来,通过Arc::clone()来传递不同的句柄给各个线程。结果后来我才反应过来,mpsc::Sender本身就支持用.clone()来廉价克隆,这时候我就有点搞不懂了——直接克隆Sender,和把整个Client用Arc包裹着实现线程共享,这两种做法到底有啥区别啊?我之前用Arc是不是多此一举了?
内容来源于stack exchange
相关产品推荐
相关产品推荐

