LeetCode刷题之旅【多线程篇】简单 - 1:按序打印

网友投稿 1104 2022-10-15

LeetCode刷题之旅【多线程篇】简单 - 1:按序打印

LeetCode刷题之旅【多线程篇】简单 - 1:按序打印

2019年11月15日

题目

注意:

尽管输入中的数字似乎暗示了顺序,但是我们并不保证线程在操作系统中的调度顺序。

你看到的输入格式主要是为了确保测试的全面性。

解题1:CountDownLatch

class Foo { private CountDownLatch countDownLatchTwo = new CountDownLatch(1); private CountDownLatch countDownLatchThree = new CountDownLatch(1); public Foo() { } public void first(Runnable printFirst) throws InterruptedException { // printFirst.run() outputs "first". Do not change or remove this line. printFirst.run(); countDownLatchTwo.countDown(); } public void second(Runnable printSecond) throws InterruptedException { countDownLatchTwo.await(); // printSecond.run() outputs "second". Do not change or remove this line. printSecond.run(); countDownLatchThree.countDown(); } public void third(Runnable printThird) throws InterruptedException { countDownLatchThree.await(); // printThird.run() outputs "third". Do not change or remove this line. printThird.run(); }}

解题2

class Foo { private boolean firstFinished; private boolean secondFinished; private Object lock = new Object(); public Foo() { } public void first(Runnable printFirst) throws InterruptedException { synchronized (lock) { // printFirst.run() outputs "first". Do not change or remove this line. printFirst.run(); firstFinished = true; lock.notifyAll(); } } public void second(Runnable printSecond) throws InterruptedException { synchronized (lock) { while (!firstFinished) { lock.wait(); } // printSecond.run() outputs "second". Do not change or remove this line. printSecond.run(); secondFinished = true; lock.notifyAll(); } } public void third(Runnable printThird) throws InterruptedException { synchronized (lock) { while (!secondFinished) { lock.wait(); } // printThird.run() outputs "third". Do not change or remove this line. printThird.run(); } }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Netty分布式从recycler对象回收站获取对象过程剖析
下一篇:LeetCode刷题之旅【算法篇】(简单 -6):572. 另一个树的子树
相关文章

 发表评论

暂时没有评论,来抢沙发吧~