美文网首页
java锁的概念

java锁的概念

作者: John13 | 来源:发表于2018-08-28 18:31 被阅读0次

参考文档
探究分布式并发锁
并发编程-锁的发展和主流分布式锁比较总结
从构建分布式秒杀系统聊聊分布式锁
探索并发编程(六)------Java多线程性能优化
java线程(2)--同步和锁
Java并发编程:Lock
深入理解多线程(一)——Synchronized的实现原理
深入理解多线程(五)—— Java虚拟机的锁优化技术
Java锁Synchronized,对象锁和类锁举例 --值得理解

说明:从资料上看到的锁分类,拿过来整理分享大家看,感谢原创!!

一、锁概念

1、自旋锁 :自旋,jvm默认是10次吧,有jvm自己控制。for去争取锁

2、阻塞锁: 被阻塞的线程,不会争夺锁。

3、可重入锁: 多次进入该锁的域

4、读写锁:

5、互斥锁: 锁本身就是互斥的

6、悲观锁: 不相信,这里会是安全的,必须全部上锁

7、乐观锁: 相信,这里是安全的。

8、公平锁: 有优先级的锁

9、非公平锁: 无优先级的锁

10、偏向锁: 无竞争不锁,有竞争挂起,转为轻量锁

11、对象锁: 锁住对象

12、线程锁:

13、锁粗化: 多锁变成一个,自己处理

14、轻量级锁: CAS 实现

15、锁消除: 偏向锁就是锁消除的一种

16、锁膨胀: jvm实现,锁粗化

17、信号量: 使用阻塞锁 实现的一种策略

二、锁的类别

1. 类锁:
在代码中的方法上加了static和synchronized的锁,或者synchronized(xxx.class)的代码段;

2.对象锁:
在代码中的方法上加了synchronized的锁,或者synchronized(this)的代码段;

3.私有锁:
在类内部声明一个私有属性如private Object lock,在需要加锁的代码段synchronized(lock)。

三、锁的四种状态

jvm系列 (三) ---锁的优化

优化:
自旋锁,锁消除,锁粗化

状态:
从低到高,只能升级不能降级:

  • 无锁状态:

  • 偏向锁状态:
    偏向锁的则是在无竞争的情况下,连CAS操作都不做

  • 轻量级锁状态:
    轻量级锁依据大部分的锁在同步周期内不存在竞争,使用CAS操作避免使用互斥量的开销

  • 重量级锁状态:
    重量级锁需要使用操作系统的互斥量(常常使用一个整型量,0表示解锁,而其他所有的值则表示加锁。通过互斥量使同一资源同时只允许一个访问者对其进行访问)来实现

相关文章

  • ReentrantReadWriteLock了解

    Java锁概念 在讲这个类之前先简单说一下Java并发两个概念,共享锁,排他锁(独占锁)。共享锁就可以同时被多个线...

  • java锁的概念

    参考文档探究分布式并发锁并发编程-锁的发展和主流分布式锁比较总结从构建分布式秒杀系统聊聊分布式锁探索并发编程(六)...

  • 锁的概述

    乐观锁与悲观锁 悲观锁 乐观锁和悲观锁的概念出自数据库,但在java并发包中也引入和类似的概念(乐观锁/悲观锁是一...

  • JAVA锁的那些事

    在学习java的过程中会遇到各个各样锁的概念:公平锁/非公平锁、可重入锁、单独锁/共享锁、互斥锁/读写锁、乐观锁/...

  • Java对象锁和类锁

    java的对象锁和类锁:java的对象锁和类锁在锁的概念上基本上和内置锁是一致的,但是,两个锁实际是有很大的区别的...

  • Java中的锁

    对Java中的锁做了简单的罗列总结,以便于后期回顾。 本文对如下概念进行了总结:锁的意义;锁的定义与实现;Java...

  • 详解Java中的锁

    并发编程,尤其是Java编程中经常涉及到锁的概念。我们听过乐观锁/悲观锁、公平锁/非公平锁、独享锁/共享锁、自旋锁...

  • java线程锁概念

    java虚拟机分为隐藏锁,显示锁其中隐藏说只可以出力公平锁, 显示锁可以出力公平锁和非公平锁 显示锁可以细分为很...

  • Java 中锁的概念

    了解各种锁的概念对并发编程很有帮助,本文将记录几种常见的锁概念。 乐观锁与悲观锁 悲观锁 是指对数据的修改持保守态...

  • Java中锁的概念

    在谈锁之前,首先要理解一些常用的锁的分类名词: 1. 锁的常用分类 死锁:所谓死锁,就是多个线程同时被阻塞,它们中...

网友评论

      本文标题:java锁的概念

      本文链接:https://www.haomeiwen.com/subject/iwbqwftx.html