![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
锁
文章平均质量分 87
tudou186
这个作者很懒,什么都没留下…
展开
-
Condition
Condition 是一个线程通信工具 跟锁没有关系 锁 条件控制 代码示例 public class ConditionDemoWait implements Runnable{ private Lock lock; private Condition condition; public ConditionDemoWait(Lock lock, Condition condition){ this.lock = lock; this.condition = condit..原创 2021-10-05 19:06:39 · 143 阅读 · 0 评论 -
wait/notify/join
线程通信 1,共享内存 2,wait/notify -> 基于某一个条件来等待或者唤醒 ,从而进行通信 可以基于wait()方法构建生产者消费者模型 以上图示说明:1,两个线程必须抢占同一把锁 2,wait/notify 方法必须在synchronized方法里面 wait()方法阻塞 一定会释放锁 注意此处释放锁但是不一定代表同步代码块执行结束 notify() 不会释放锁 //以下代码通过Queue这一个共享数据结构 来进行生产者消费者通信 基于某一个...原创 2021-10-05 13:47:58 · 174 阅读 · 0 评论 -
Lock锁原理分析
猜想 锁的设计猜想: 1,满足线程的互斥特性 2,同一时刻只能有一个线程进入到加锁的代码 ---》多线程环境下 顺序访问 3,抢占到锁的标记 表示互斥全局变量 4,逻辑处理 抢到锁的逻辑 没抢到锁的逻辑 需要排队(允许有N个线程被阻塞,此时线程处于活跃状态) 通过一个数据结构,存储N个排队的线程 需要等待(让处于排队中的线程,如果没有抢到锁则直先阻塞→释放CPU资源) ...原创 2021-10-05 10:34:33 · 222 阅读 · 0 评论