死锁的问题代码
volatile线程间通讯变量的可见性,
jmm java memory model 一个线程是把内存中的数据拷贝到cpu中,如果另外一个对象把值发生改变,会通知其他线程,数据过期,重新拷贝。
synchronize保证线程的原子性和可见性。
如果线程有异常,线程就会中止,数据需要回滚。
线程synchronize调用非synchronize,也可以调用父类的synchronize方法
银行账户读是否需要加锁,防止发生脏读。
锁是锁对象还是方法,是锁住对象。
有monitor的对象才可以使用wait方法进入等待,调用notify才能唤醒wait的线程
synchronized关键字实现线程同步来获取对象的Monitor
https://blog.youkuaiyun.com/boyeleven/article/details/81390738