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

fee*_*ing 5 java concurrency locking synchronized

我正在阅读“Java Concurrency CookBook”。在那位作者提到使用 Lock 接口比使用synchronized关键字具有更高的性能。有人能告诉我怎么做吗?使用诸如堆栈帧或方法调用次数之类的术语。别介意,请帮我摆脱java并发概念。

use*_*421 2

and Friends存在的理由并不是它Lock本质上比 更快synchronized(),而是它可以以不一定对应于词法​​块结构的不同方式使用,而且它可以提供更多设施,例如读写锁、计数信号量等。

特定的Lock 实现是否实际上比实际更快synchronized是一个有争议的问题并且取决于实现。Javadoc 中肯定没有这样的说法。Doug Leas 的书[1](这一切都是从这本书开始的)并没有声称我可以很快看到比“通常表现更好”更强大的东西。

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