我不明白他们之间的区别。我认为来自锁接口的锁也是可重入的,那么它们之间有什么区别?你什么时候使用每个?
问问题
6159 次
1 回答
13
Lock
是一个接口。它定义了所有锁都应该具有的一组方法。
ReentrantLock
是实现接口的具体类。Lock
它实现了 中定义的所有方法Lock
,还有更多。此外,正如名称中提到的,锁是可重入的,这意味着同一个线程可以根据需要多次获取锁。synchronized
这与关键字提供的本机对象监视器锁本质上是相同的行为。
该Lock
接口使您可以实现自己的锁。例如,您可以设计一个发出 HTTP 请求(执行网络 I/O)来锁定远程资源的锁。另一个使用你的锁的类不会关心你的锁的内部细节;它只关心您的自定义锁是否尊重Lock
界面。
于 2016-04-22T17:56:53.917 回答