对Sync的性能影响感到困惑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对Sync的性能影响感到困惑相关的知识,希望对你有一定的参考价值。

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

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

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

答案

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

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

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

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

以上是关于对Sync的性能影响感到困惑的主要内容,如果未能解决你的问题,请参考以下文章

Slick 对 numThreads 和获得良好性能的最佳实践感到困惑

基于时间复杂度的这些片段真的很困惑

对 facebook graph api 升级感到困惑

025:sysbench压测-innodb_flush_log_at_trx_commit,sync_binlog参数对性能的影响

对代码中的类结构感到困惑[关闭]

我对一些反射代码感到困惑,并寻找洞察力