并发编程中------------------------锁机制

一、synchronized同步关键字的缺陷

  一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块,其他线程就一直在等待,等待获取锁的线程释放。而且获取锁的线程释放锁只有两种情况

  1、获取锁的线程执行完了该代码块,然后释放对锁的占有

  2、锁线程执行发生异常,此时JVM会让线程自动释放该锁

  但是如果获取锁的这个线程由于要等待IO获取其他的原因(比如sleep)线程被阻塞了,锁没有被释放,其他线程就只能眼巴巴的一直等待,影响系统的执行

  3、lock可以判断是否获取到锁而且lock需要手动去释放锁

2.ReentrantLock

  

原文地址:https://www.cnblogs.com/hanxue112253/p/8119300.html