Java多线程机制中的各种锁问题:
悲观锁、乐观锁、自旋锁、排它锁、共享锁、读写锁、统一锁、分段锁
悲观锁:坏事一定会发生,事先做好预防(上锁)
乐观锁:坏事未必会发生,事后可以补偿
自旋锁:乐观锁的实现
ABA问题 - 加版本
保障CSA操作的原子性问题(lock指令) CSA:(Compare And Set)
ABA问题详解:![在这里插入图片描述](https://img-blog.csdnimg.cn/e0c07eb5f6704fb58a914fc3b72f0882.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAaGVudV9zdHVkZW50,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
排它锁:只一个线程能访问代码
共享锁:可以多个线程访问
读写锁:分为两个锁:读锁-读的时候其他不能写但是可读,写锁-写的时候其他不能有任何操作
统一锁:大颗粒度锁
分段锁:小颗粒度锁,分段上锁