kal*_*ale 5 java concurrency multithreading java.util.concurrent reentrantlock
我不明白他们之间的区别.我认为来自锁定界面的锁也是可重入的,那么它们之间的区别是什么?你什么时候用?
Lock是一个界面.它定义了一组所有锁应具有的方法.
ReentrantLock是一个实现接口的具体类Lock.它实现了定义的所有方法Lock,以及更多.另外,正如名称中所提到的,锁是可重入的,这意味着同一个线程可以根据需要多次获取锁.这与synchronized关键字提供的本机对象监视器锁基本相同.
该Lock接口可以让你实现自己的类型的锁.例如,您可以设计一个锁,该锁发出HTTP请求(执行网络I/O)以锁定远程资源.使用你的锁的另一个类不关心锁的内部细节; 它只关心你的自定义锁是否尊重Lock界面.