随笔分类 -  Java -- 多线程

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