在一个多线程,保证数据的安全,
保证数据的准确性,以及性能(越快越好)
并发三要素:同一个对象,多个线程,同时操作
列子:三个线程去取票,一共十张, 当a,b,c同时间取票,a会从主内存中拿到票,复制到自己的工作空间中,然后修改成9再赋给主内存。
但是 当a拿到票的数据的时候,还没赋值新的数据给主内存的时候,b也拿到还没有赋值的数据,这样就都拿到a,b 就拿到一模一样的数据了,线程不安全
synchronized 锁机制:当前线程挂机锁,其他线程只能在线程池队列等待,该线程结束释放锁,才能调度
开锁,解锁,以及其它线程等待都会影响性能,用锁的时候尽量禁烧范围
可重入锁:线程调用 a方法,a调用b方法, a,b都有锁是同一个, 是可以重入的