這篇文章主要為大家展示了“l(fā)eetcode多線(xiàn)程之如何解決按序打印問(wèn)題”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“l(fā)eetcode多線(xiàn)程之如何解決按序打印問(wèn)題”這篇文章吧。
創(chuàng)新互聯(lián)不只是一家網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司;我們對(duì)營(yíng)銷(xiāo)、技術(shù)、服務(wù)都有自己獨(dú)特見(jiàn)解,公司采取“創(chuàng)意+綜合+營(yíng)銷(xiāo)”一體化的方式為您提供更專(zhuān)業(yè)的服務(wù)!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關(guān)注我們的網(wǎng)站建設(shè)、做網(wǎng)站質(zhì)量和服務(wù)品質(zhì),在得到用戶(hù)滿(mǎn)意的同時(shí),也能得到同行業(yè)的專(zhuān)業(yè)認(rèn)可,能夠?yàn)樾袠I(yè)創(chuàng)新發(fā)展助力。未來(lái)將繼續(xù)專(zhuān)注于技術(shù)創(chuàng)新,服務(wù)升級(jí),滿(mǎn)足企業(yè)一站式成都全網(wǎng)營(yíng)銷(xiāo)推廣需求,讓再小的品牌網(wǎng)站設(shè)計(jì)也能產(chǎn)生價(jià)值!
我們提供了一個(gè)類(lèi): public class Foo { public void first() { print("first"); } public void second() { print("second"); } public void third() { print("third"); } } 三個(gè)不同的線(xiàn)程將會(huì)共用一個(gè) Foo 實(shí)例。 線(xiàn)程 A 將會(huì)調(diào)用 first() 方法 線(xiàn)程 B 將會(huì)調(diào)用 second() 方法 線(xiàn)程 C 將會(huì)調(diào)用 third() 方法 請(qǐng)?jiān)O(shè)計(jì)修改程序,以確保 second() 方法在 first() 方法之后被執(zhí)行,third() 方法在 second() 方法之后被執(zhí)行。 來(lái)源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/print-in-order 著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
使用juc包的CountDownLatch
class Foo { CountDownLatch second = new CountDownLatch(1); CountDownLatch third = new CountDownLatch(1); public Foo() { } public void first(Runnable printFirst) throws InterruptedException { printFirst.run(); second.countDown(); } public void second(Runnable printSecond) throws InterruptedException { second.await(); printSecond.run(); third.countDown(); } public void third(Runnable printThird) throws InterruptedException { third.await(); printThird.run(); } }
以上是“l(fā)eetcode多線(xiàn)程之如何解決按序打印問(wèn)題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!