一、Synchronized和Lock区别
1.Synchronized 是java内置的关键字;Lock是类
2.Synchronized 无法判断获取锁的状态,Lock可以判断是否获取到了锁
3.Synchronized 会自动释放锁,Lock必须要手动释放锁,不释放会死锁
4.Synchronized 如果线程1(获得锁,阻塞)线程2(等待),lock不一定会等待下去
5.Synchronized 可重入锁,不可以中断,是非公平的,Lock 可重入锁,可判断锁,非公平(可以自己设置)
6.Synchronized 适合锁少量的代码同步问题,Lock 适合锁大量的同步代码
线程之间的通信问题:生产者和消费者问题!等待唤醒,通知唤醒
线程交替执行,AB操作同一个变量num =0,先执行num加一才能执行num减一
Anum+1
Bnum-1



