![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
锁
文章平均质量分 74
锁
炎升
这个作者很懒,什么都没留下…
展开
-
并发编程学习(九):同步模式之顺序控制、交替打印
同步模式之顺序控制、交替打印原创 2023-01-31 11:03:09 · 603 阅读 · 0 评论 -
并发编程学习(八):ReentrantLock特性、哲学家吃饭问题
ReentrantLock 是java.util.concurrent.locks包下的类。相对于synchronized,它具备如下特性:可中断。可以设置超时时间。可以设置公平锁。支持多个条件变量。即可以有个多个waitset等待队列。与synchronized都支持可重入。可冲入是指 同一个线程如果首次获得了这把锁,那么因为它是这把锁的拥有者,因此有权利再次获取这把锁。如果是不可冲入锁,那么第二次获取锁时,自己会被锁挡住。原创 2023-01-30 14:41:25 · 877 阅读 · 1 评论 -
JOL(java object layout): java 对象内存布局
JOL的全称是Java Object Layout 即 java 对象内存布局。是一个用来分析JVM中Object布局的小工具。包括Object在内存中的占用情况,实例对象的引用情况等等。JOL可以在代码中使用,也可以独立的以命令行中运行。命令行的我这里就不具体介绍了,今天主要讲解怎么在代码中使用JOL。.....................转载 2022-08-10 15:25:52 · 2670 阅读 · 0 评论 -
什么是CAS
CAS : compare and swap 比较和交换。: 中间 改过值,但最终又回到0 了。例如:原值:0线程1:读取 0, 要将0 改为 1。但没改之前,发现以下操作,所以线程1在将0改为1时,这个0已经不是之前的0 了。线程2: 读取 0,将值改为 2。线程3: 读取2,将值改为 0。ABA问题 的简单理解:你的女朋友在离开你的这段儿时间经历了别的人,自旋就是你空转等待,一直等到她接纳你为止。:加版本号。基础类型简单值不需要版本号。......原创 2022-08-10 16:32:16 · 89 阅读 · 0 评论 -
线程安全与线程不安全
1、线程安全:指多个线程在执行同一段代码的时候采用加锁机制,使每次的执行结果和单线程执行的结果都是一样的,不存在执行程序时出现意外结果。2、线程不安全:是指不提供加锁机制保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。扩展资料1、引起线程安全问题的原因:线程安全问题都是由全局变量及静态变量引起的。若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程.原创 2021-05-28 15:21:58 · 8255 阅读 · 0 评论 -
Java中锁种类、实现方式
锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现。如 synchronized 和 ReentrantLock(并发包中的锁类)等 。1、锁涉及的几个重要概念死锁线程之间相互等着对方释放资源,而自己的资源又不释放给别人,这种情况就是死锁。所以,只要其中一线程释放了资源,死锁就会被解除。重入锁重入锁指的是,一个线程在拥有了当前资源的锁之后,可以再次拿到该锁而不被阻塞。在后面会讲到synchronized的重入锁原理。自旋锁自旋锁指的是,线程在没有获得锁时,不是被直接挂起,而原创 2021-03-08 16:00:32 · 4355 阅读 · 0 评论 -
java内置锁的简单认识
多线程开发离不开锁机制,现在的Java语言中,提供了2种锁,一种是语言特性提供的内置锁,还有一种是 java.util.concurrent.locks 包中的锁,这篇文章简单整理一下内置锁的知识点。1、内置锁在Java语言中的表现: 多线程的锁,其实本质上就是给一块内存空间的访问添加访问权限,因为Java中是没有办法直接对某一块内存进行操作的,又因为Java是面向对象的语言,一切皆对象,所以具体的表现就是某一个对象承担锁的功能,每一个对象都可以是一个锁。内置锁,使用方式就是使用 ...转载 2020-06-18 10:01:41 · 303 阅读 · 0 评论