
JUC并发编程
文章平均质量分 51
并发编程学习专栏
Max恒
这个作者很懒,什么都没留下…
展开
-
[Java多线程-基础] 如何定位线程中的死锁问题?
下面提供的代码演示了死锁的情况。程序创建了两个线程,线程1和线程2,它们都试图以不同的顺序获取两个不同的资源,resource1和resource2。线程1首先获取resource1,然后等待resource2,而线程2首先获取resource2,然后等待resource1。这会创建一个死锁场景,其中两个线程都在等待另一个线程释放它们需要继续的资源。程序将不会终止,直到死锁得到解决。原创 2023-05-07 19:21:35 · 898 阅读 · 0 评论 -
【Java多线程-常用API】wait与notify的使用
Owner线程发现条件不满足,调用wait方法,即可进入WaitSet变为WAITING状态BLOCKED和WAITING的线程都改处于阻塞状态,不占用CPU时间片BLOCKED线程会在Owner线程释放锁时唤醒WAITING线程会在Owner线程调用notify或notifyAll时唤醒,但唤醒后并不意味者立刻获得锁,仍需进入EntryList重新竞争原创 2023-02-01 14:04:54 · 266 阅读 · 0 评论 -
[Java-多线程] 锁原理(轻量级锁、锁膨胀、自旋锁、偏向锁)
我们平时使用的对象都是由两部分组成, 第一部分是对象头, 第二部分是对象的成员变量, 这里我么主要讲解对象头, 以32为虚拟机为例 :Klass Word : 每个对象都有类型 通过Klass Word就可以找到对应的类对象StateNormal (普通的)BiasedLightweight Locked (轻量级锁定)Heavyweight Locked (重量级锁定)| 11数字 01 代表的是加锁状态位。原创 2023-01-27 13:09:57 · 558 阅读 · 0 评论 -
多线程Monitor工作原理
我们都知道synchronized的作用是用来保证修饰的代码或者方法执行有且只有一个线程执行,也就是锁。那么在执行被锁住的方式时,synchronized就需要通过monitor来记录和保证锁的状态。所以monitor这里的作用其实就是起到了控制synchronized什么时候获取锁,什么时候释放锁,以及记录了锁被重用的次数。🍎。原创 2023-01-12 21:52:01 · 1516 阅读 · 0 评论 -
Java 线程安全的集合有哪些?
第一代线程安全集合类Vector、Hashtable是怎么保证线程安排的:使用synchronized修饰方法缺点:效率低下第二代线程非安全集合类ArrayList、HashMap线程不安全,但是性能好,用来替代Vector、Hashtable使用ArrayList、HashMap,需要线程安全怎么办呢?Collections.synchronizedList(list);Collections.synchronizedMap(m);底层使用synchronized代码块锁虽然也是锁住了所原创 2022-07-04 21:49:11 · 10829 阅读 · 0 评论 -
Java静态方法上加synchronized锁是谁
代码如上1. 当在静态方法上a() 加synchronized之后锁就是 类对象Number,2. 当在普通方法上b() 加synchronized之后锁就是 Number n1 = new Number() 的n1原创 2022-06-26 18:34:16 · 510 阅读 · 0 评论 -
多线程 interrupt用法
本文涉及到的两个知识点示例代码当线程睡眠完成后 Thread.sleep(100), 开始了interrupt打断线程, 随即在循环中执行方法isInterrupted(), 返回结果为true, 代表了该线程已经被打断了原创 2022-06-20 14:37:24 · 247 阅读 · 0 评论 -
Join等待多个线程的同步结果
t1 和 t2 两个线程会同时运行, t1睡眠1秒的同时 t2也睡眠了一秒原创 2022-06-19 16:14:50 · 131 阅读 · 0 评论 -
java 程序计数器是什么
我们都知道 JVM 中由堆、栈、方法区所组成,其中栈内存是给谁用的呢?其实就是线程,每个线程启动后,虚拟机就会为其分配一块栈内存。每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法...原创 2022-06-16 10:39:33 · 1213 阅读 · 0 评论 -
多线程如何debug调试?
如何多线程debug原创 2022-06-15 17:13:13 · 2603 阅读 · 0 评论