对Sync的性能影响感到困惑

问题描述 投票:3回答:1

我在阅读Sync后有一个关于标记性状Extensible Concurrency with the Sync and Send Traits的问题。

Java“synchronized”意味着阻塞,所以我很困惑如何实现一个带有qazxsw poi的Rust结构,其方法在多个线程上执行会有效。

我搜索但没有找到有意义的答案。我这样思考:每个线程都会同步获取struct的引用(阻塞),但是并行调用该方法,是真的吗?

performance rust synchronization
1个回答
5
投票

Java:在通过此代码路径时,从多个线程访问此对象将成为同步的操作序列。 Rust:通过多个线程的引用同步访问此类型是安全的。

(以上两点不是规范定义,它们只是演示了如何在句子中使用相似的词来获得不同的含义)

Sync在运行时实现为互斥锁。 synchronized是关于特定类型的运行时属性的编译时承诺,允许其他类型通过特征边界依赖于这些属性。 Sync碰巧是一种可以提供Mutex行为的方式。不可变类型通常也提供此行为,而无需任何运行时成本。

通常,您不应该依赖于在不同背景下具有完全相同含义的单词。 Java IO stream!= java collection stream!= RxJava reactive stream〜= tokio Stream。 C volatile!= java volatile。最终,散文比关键词更重要,而关键词只是短篇小说。

© www.soinside.com 2019 - 2024. All rights reserved.