与并发应用程序设计中使用syncize关键字相比,使用Lock接口如何提供更高的性能?

问题描述 投票:4回答:2

我正在阅读“ Java并发CookBook”。在那位作者中提到使用Lock接口比使用synchronized关键字可以提供更高的性能。使用诸如堆栈框架或方法调用数之类的术语。别介意,请帮助我摆脱Java并发概念。

java concurrency locking synchronized
2个回答
2
投票

Lock和朋友的raison d'etre并不是说它固有地比synchronized()快,而是因为它可以以不同的方式使用,而不一定对应于词法​​块结构,并且它可以提供更多功能,例如读写锁,计数信号灯等。

是否特定的Lock 实现实际上比synchronized快是一个争论点,并且与实现有关。 Javadoc中当然没有这样的主张。道格·利阿斯(Doug Leas)的这本书[1]始于这一切,并没有断言我可以很快地比“经常有更好的性能”更强大。

[[1]:Lea,Java并发编程,第二版,Addison Wesley 2000。


0
投票

1同步是导致死锁问题的唯一元凶,不同于没有死锁问题的锁。

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