一、出现线程安全性问题的条件
- 在多线程的环境下
- 必须有共享资源
- 对共享资源进行非原子性操作
- synchronized(偏向锁、轻量级锁、重量级锁)
- volatile关键字
- JDK提供的原子类
- 使用Lock(共享锁,排它锁)
- 死锁:参考https://wwwxz.blog.csdn.net/article/details/115757714
- 自旋锁:参考https://wwwxz.blog.csdn.net/article/details/115758380
- 重入锁:参考https://wwwxz.blog.csdn.net/article/details/115761429
- 公平锁:参考https://wwwxz.blog.csdn.net/article/details/116138117
- 非公平锁:参考https://wwwxz.blog.csdn.net/article/details/116138117
- 读写锁:参考https://wwwxz.blog.csdn.net/article/details/116175961
- 偏向锁:参考https://wwwxz.blog.csdn.net/article/details/115727171
- 轻量级锁:参考https://wwwxz.blog.csdn.net/article/details/115727171
- 重量级锁:参考https://wwwxz.blog.csdn.net/article/details/115727171