开发者社区> 问答> 正文

在java中异步化为什么比同步的性能更好,同步性能低的原因在哪里?

在java中异步化为什么比同步的性能更好,同步性能低的原因在哪里?

展开
收起
晓风瑟瑟 2021-11-06 09:42:29 848 0
1 条回答
写回答
取消 提交回答
  • 同步意味着互斥(如果使用相同的监视器)、同步块的原子性(同样相对于使用相同监视器的其他线程)以及线程内存与主内存的同步。因为同步将线程内存与主内存同步,所以除了简单地获取锁之外,同步还有成本。同步太少会导致数据损坏;太多会导致性能下降和死锁。同步的成本因 JVM 的不同而不同,最新的 JVM 效率更高。同步的成本取决于线程是否实际争用锁(更昂贵、更慢),或者线程基本上以单线程模式运行(更便宜、更快)的无争用同步。您需要同步或制作volatile保存将在线程之间共享的数据的变量。即使每个单独的操作已经同步,复合操作也可能需要同步以使其具有原子性。

    2021-11-06 13:10:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载