欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Lock锁中lock与tryLock的区别

最编程 2024-07-28 19:49:41
...

Lock锁中lock()与tryLock()的区别

 

 

在ReentrantLock 中,

 

Lock()方法:

lock()方法是一个无条件的锁,与synchronize意思差不多,直接去获取锁。成功了就ok了,失败了就进入阻塞等待了。不同的是lock锁是可重入锁

 

另一个方法 tryLock()方法

当获取锁时,只有当该锁资源没有被其他线程持有才可以获取到,成功获取到锁资源之后,会立即返回true

当获取锁时,如果其他线程正在持有该锁,无可用锁资源,则会立即返回false!这时候当前线程不用阻塞等待,可以先去做其他事情;

如果为这个方法加上timeout参数,则会在等待timeout的时间之后,才会返回false或者在获取到锁之后返回true。