java基础(jdk1.8)
**
多线程—锁的类型
**
此篇博客主要讲线程间状态
本篇链接
锁的分类
以下分类由锁的性质分类
- 乐观锁/悲观锁
乐观锁总认为不会出现多线程安全问题,则不加锁,使用CAS来处理
悲观锁总认为多线程操作会出现问题,所以多线程操作直接加互斥锁
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1VGHxtBr-1593345058653)(##)]
- 独享锁/共享锁
独享锁:一个线程可用
共享锁:可用多个锁同时使用
- 互斥锁/读写锁
互斥锁:
读写锁:分为读锁和写锁,将读写分离
- 可重入锁
获取到对象锁时,再次申请该对象锁,依然可以申请到
- 公平锁/非公平锁
公平锁为等待线程哪个等待时间长cpu空出来则先执行
- 分段锁
执行任务时将任务进行分段,需要所有线程将一段任务执行完同时进行下一段任务
扩充:synchronized(jdk1.6优化过后的实现形式)
使用锁升级来实现
偏向锁—>自旋锁/轻量级锁–>重量级锁(锁升级、锁膨胀)
有兴趣的关注我的公众号,一起学习交流啊
上一篇 》线程间状态及转换