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。
推荐阅读
-
理解MySQL中的表锁与行锁:独占锁与共享锁的区别
-
明白共享锁与排他锁的差异:lock in share mode vs for update
-
理解Java ReentrantLock中的tryLock与lock差异:聚焦公平锁与非公平锁的实战解析
-
探索Java多线程中的Lock锁机制
-
阿里面试实战题2:ReentrantLock中lock与tryLock功能差异详解
-
Redisson之lock和tryLock的区别
-
Lock锁中lock与tryLock的区别
-
Redisson中tryLock方法与普通lock功能的差异解析
-
深入理解Java中Lock和tryLock方法的工作原理与应用
-
Redission分布式锁:lock与tryLock操作方式的对比与差异