快乐金鱼

文章
3
资源
0
加入时间
3年1月10天

Lock和Synchronized的对比和实现

Lock拥有锁获取与释放的可操作性、可中断的获取锁以及超时获取锁Lock lock = new ReentrantLock(); lock.lock(); try { // ..} finally { lock.unlock();}注意:在finally块中释放锁,目的是保证在获取到锁之后,最终能够被释放。不要将获取锁的过程写在try块中,因为如果在获取锁(自定义锁的实现)时发生了异常,异常抛出的同时,会提前进行unlock导致IllegalMonitorSt