在java中异步化为什么比同步的性能更好,同步性能低的原因在哪里?
同步意味着互斥(如果使用相同的监视器)、同步块的原子性(同样相对于使用相同监视器的其他线程)以及线程内存与主内存的同步。因为同步将线程内存与主内存同步,所以除了简单地获取锁之外,同步还有成本。同步太少会导致数据损坏;太多会导致性能下降和死锁。同步的成本因 JVM 的不同而不同,最新的 JVM 效率更高。同步的成本取决于线程是否实际争用锁(更昂贵、更慢),或者线程基本上以单线程模式运行(更便宜、更快)的无争用同步。您需要同步或制作volatile保存将在线程之间共享的数据的变量。即使每个单独的操作已经同步,复合操作也可能需要同步以使其具有原子性。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。