轮询锁使用时遇到的问题与解决方案!(6)

简介: 轮询锁使用时遇到的问题与解决方案!(6)

以上代码的执行结果如下:



微信图片_20220120215211.jpg


img


从上述结果可以看出,线程 1(轮询锁)一直未成功获取到锁,造成这种结果的原因是:线程 1 每次轮询的等待时间为固定的 1s,而线程 2 也是相同的频率,每 1s 获取一次锁,这样就会导致线程 2 会一直先成功获取到锁,而线程 1 则会一直处于“饿死”的情况,执行流程如下图所示:


微信图片_20220120215230.jpg

相关文章
|
4月前
|
Java 调度 C++
多线程之常见的锁策略
多线程之常见的锁策略
|
安全 Java 程序员
多线程(八):常见锁策略
多线程(八):常见锁策略
179 0
多线程(八):常见锁策略
|
安全 Java 调度
多线程常见的锁策略
多线程常见的锁策略
92 0
|
Java 调度 容器
【多线程与高并发】- 线程基础与状态
所谓线程就是操作系统(OS)能够进行运算调度的最小单位,是一个基本的CPU执行单元,也是执行程序流的最小单元。能够提高OS的并发性能,减小程序在并发执行时所付出的时空开销。线程是进程的一个实体,是被系统独立调度和分派的基本单位。
136 0
【多线程与高并发】- 线程基础与状态
|
存储 Java
锁的优化机制
从JDK1.6版本之后,synchronized本身也在不断优化锁的机制,有些情况下他并不会是一个很重量 级的锁了。优化机制包括自适应锁、自旋锁、锁消除、锁粗化、轻量级锁和偏向锁。
254 0
锁的优化机制
轮询锁使用时遇到的问题与解决方案!(2)
轮询锁使用时遇到的问题与解决方案!(2)
115 0
轮询锁使用时遇到的问题与解决方案!(2)
轮询锁使用时遇到的问题与解决方案!(7)
轮询锁使用时遇到的问题与解决方案!(7)
93 0
轮询锁使用时遇到的问题与解决方案!(7)
轮询锁使用时遇到的问题与解决方案!(4)
轮询锁使用时遇到的问题与解决方案!(4)
108 0
轮询锁使用时遇到的问题与解决方案!(4)
轮询锁使用时遇到的问题与解决方案!(3)
轮询锁使用时遇到的问题与解决方案!(3)
90 0
轮询锁使用时遇到的问题与解决方案!(3)
轮询锁使用时遇到的问题与解决方案!(1)
轮询锁使用时遇到的问题与解决方案!(1)
85 0
轮询锁使用时遇到的问题与解决方案!(1)