Memory 线程间的内存共享

Memory 线程间的内存共享,memory,websocket,rust,mutex,shared-memory,Memory,Websocket,Rust,Mutex,Shared Memory,我正在尝试使用互斥和Arc在不同线程之间共享一个(用于websocket通信)及其属性 let shared_server=Arc::new(Mutex::new(server{out:None})); 让c_shared_server=shared_server.clone(); 线程::生成(移动| |{ 听(格式!({}:{}),字符串::from(“127.0.0.1”),3012),| out |{ c_shared_server.lock().unwrap().out=Some(ou

我正在尝试使用互斥和Arc在不同线程之间共享一个(用于websocket通信)及其属性

let shared_server=Arc::new(Mutex::new(server{out:None}));
让c_shared_server=shared_server.clone();
线程::生成(移动| |{
听(格式!({}:{}),字符串::from(“127.0.0.1”),3012),| out |{
c_shared_server.lock().unwrap().out=Some(out.clone());
移动| msg |{
好(())
}
}).unwrap()
});
设十毫秒=时间::持续时间::从十毫秒(1000);
线程:睡眠(十毫秒);
普林顿!(“{:?}”,shared_server.lock().unwrap());
服务器{out:None}


out在这里不应该是空的,我想用它,你知道我怎样才能做到吗?

为什么不应该呢?您是否计算了
listen
调用您提供的回调所需的时间?有人叫它吗?如果是,是在1s之后还是之前调用?此
listen()
方法不透明,未在问题中提供;据我们所知,做任何事情都可能需要6个小时。为什么不使用频道呢?谢谢@SébastienRenauld,当客户端连接时,会调用find out…@LouisBeaumont总是使用断点或旧的
println进行调查!()
在假设这是语言核心部分的一个问题之前:-)我没有假设这是语言的一个问题,而是问如何从中找出不同的:),@FrenchBoiethios我不知道频道,但会研究一下的,谢谢(但不幸的是,例子太少了)