java的锁机制
2021-02-05 02:19
标签:获取 alt nbsp blog containe com 一个 区别 border 1.什么是锁? 参考博客:https://www.cnblogs.com/hustzzl/p/9343797.html 本次将提及用到的锁机制: 独享锁是指该锁一次只能被一个线程所持有。 共享锁是指该锁可被多个线程所持有。 对于Java ReentrantLock而言,其是独享锁。但是对于Lock的另一个实现类ReadWriteLock,其读锁是共享锁,其写锁是独享锁。 读锁的共享锁可保证并发读是非常高效的,读写,写读,写写的过程是互斥的。 独享锁与共享锁也是通过AQS来实现的,通过实现不同的方法,来实现独享或者共享。 对于Synchronized而言,当然是独享锁。 2.锁处理了什么东西? 就个人理解,锁是将共享资源进行锁住,比如代码块,资源等。 3.锁的使用 参考博客:https://www.cnblogs.com/wuhan729/p/8601108.html lock锁使用 tryLock(long time, TimeUnit unit)方法和tryLock()方法是类似的,只不过区别在于这个方法在拿不到锁时会等待一定的时间,在时间期限之内如果还拿不到锁,就返回false。如果如果一开始拿到锁或者在等待期间内拿到了锁,则返回true。 所以,一般情况下通过tryLock来获取锁时是这样使用的: 4.常用锁 lock Synchronized java的锁机制 标签:获取 alt nbsp blog containe com 一个 区别 border 原文地址:https://www.cnblogs.com/setname/p/12790418.html独享锁/共享锁
Lock lock = ...;
if
(lock.tryLock()) {
try
{
//处理任务
}
catch
(Exception ex){
}
finally
{
lock.unlock();
//释放锁
}
}
else
{
//如果不能获取锁,则直接做其他事情
}