< 返回版块

eric642 发表于 2020-10-23 17:08

例如collections里的那些数据结构, 哪些是线程安全的..我去官方的标准库文档似乎没找到说明.

评论区

写评论
Neutron3529 2020-10-23 20:02

只要编译通过就是安全的

——大概如此

作者 eric642 2020-10-23 17:55

好的.谢谢..

--
👇
whfuyn: 是的

--
👇
eric642: 是指实现了这个Sync这个trait吗? impl<T: ?Sized + Send> Sync for Mutex

--
👇
whfuyn: 只要看它是不是Sync的就行。 一个数据结构是Sync的,也就是说它能够在线程间安全地传递引用,从而能在不同的线程中安全地调用它的方法,也即线程安全。

whfuyn 2020-10-23 17:54

是的

--
👇
eric642: 是指实现了这个Sync这个trait吗? impl<T: ?Sized + Send> Sync for Mutex

--
👇
whfuyn: 只要看它是不是Sync的就行。 一个数据结构是Sync的,也就是说它能够在线程间安全地传递引用,从而能在不同的线程中安全地调用它的方法,也即线程安全。

作者 eric642 2020-10-23 17:51

是指实现了这个Sync这个trait吗? impl<T: ?Sized + Send> Sync for Mutex

--
👇
whfuyn: 只要看它是不是Sync的就行。 一个数据结构是Sync的,也就是说它能够在线程间安全地传递引用,从而能在不同的线程中安全地调用它的方法,也即线程安全。

whfuyn 2020-10-23 17:44

只要看它是不是Sync的就行。 一个数据结构是Sync的,也就是说它能够在线程间安全地传递引用,从而能在不同的线程中安全地调用它的方法,也即线程安全。

作者 eric642 2020-10-23 17:36

感谢!你提醒完我才想起来之前看的书有说过这事儿, 刚才脑子没转过弯来~~~~

--
👇
alexlee85: 因为所有权的检查你已经不能跨线程访问同一个数据结构了。 如果要跨线程就必须使用Arc(Atomic Reference Count)和Mutex

不信你可以试试不用Arc和Mutex在两个线程之间来共享变量,编译器会报错。

alexlee85 2020-10-23 17:24

因为所有权的检查你已经不能跨线程访问同一个数据结构了。 如果要跨线程就必须使用Arc(Atomic Reference Count)和Mutex

不信你可以试试不用Arc和Mutex在两个线程之间来共享变量,编译器会报错。

1 共 7 条评论, 1 页