随笔分类 - Java -- 多线程
摘要:一、AQS简介 AbstractQueuedSynchronizer 抽象队列同步器。简称AQS,同时拥有 同步队列 与 等待队列 二、源码浅析 同步队列 线程调用了lock 方法,首先调用 acquire 方法请求锁,acquire 里面首先将现场节点封装Node 加入到同步队列的队尾,然后 在
阅读全文
摘要:题目:https://leetcode-cn.com/problems/the-dining-philosophers 5 个沉默寡言的哲学家围坐在圆桌前,每人面前一盘意面。叉子放在哲学家之间的桌面上。 (5 个哲学家,5 根叉子) 所有的哲学家都只会在思考和进餐两种行为间交替。 哲学家只有同时拿到
阅读全文
摘要:一、题目:https://leetcode-cn.com/problems/building-h2o 现在有两种线程,氧 oxygen 和氢 hydrogen,你的目标是组织这两种线程来产生水分子。存在一个屏障(barrier)使得每个线程必须等候直到一个完整水分子能够被产生出来。氢和氧线程会被分别
阅读全文
摘要:一、题目描述:https://leetcode-cn.com/problems/print-zero-even-odd 相同的一个 ZeroEvenOdd 类实例将会传递给三个不同的线程:线程 A 将调用 zero(),它只输出 0 。线程 B 将调用 even(),它只输出偶数。线程 C 将调用
阅读全文
摘要:题目来源:https://leetcode-cn.com/problems/print-foobar-alternately 两个不同的线程将会共用一个 FooBar 实例。其中一个线程将会调用 foo() 方法,另一个线程将会调用 bar() 方法。设计修改程序,以确保 "foobar" 被输出
阅读全文
摘要:一.简介: Latch意思是:门闩的意思,形象的来说await就是拴上门闩,等到门闩释放后当前线程开始工作。 下面是来自简书上的解释: CountDownlatch是一个多功能的同步工具,可以被用于各种目的。一个CountDownLatch通过一个值为1的count被初始化,来作为一个开/关的门或门
阅读全文