日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

(多线程)leetcode1114. 按序打印 认识AtomicInteger

發(fā)布時(shí)間:2023/12/13 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (多线程)leetcode1114. 按序打印 认识AtomicInteger 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們提供了一個(gè)類(lèi):

public class Foo {
??public void one() { print("one"); }
??public void two() { print("two"); }
??public void three() { print("three"); }
}
三個(gè)不同的線程將會(huì)共用一個(gè)?Foo?實(shí)例。

線程 A 將會(huì)調(diào)用 one() 方法
線程 B 將會(huì)調(diào)用?two() 方法
線程 C 將會(huì)調(diào)用 three() 方法
請(qǐng)?jiān)O(shè)計(jì)修改程序,以確保 two() 方法在 one() 方法之后被執(zhí)行,three() 方法在 two() 方法之后被執(zhí)行。

?

示例 1:

輸入: [1,2,3]
輸出: "onetwothree"
解釋:?
有三個(gè)線程會(huì)被異步啟動(dòng)。
輸入 [1,2,3] 表示線程 A 將會(huì)調(diào)用 one() 方法,線程 B 將會(huì)調(diào)用 two() 方法,線程 C 將會(huì)調(diào)用 three() 方法。
正確的輸出是 "onetwothree"。
示例 2:

輸入: [1,3,2]
輸出: "onetwothree"
解釋:?
輸入 [1,3,2] 表示線程 A 將會(huì)調(diào)用 one() 方法,線程 B 將會(huì)調(diào)用 three() 方法,線程 C 將會(huì)調(diào)用 two() 方法。
正確的輸出是 "onetwothree"。
?

注意:

盡管輸入中的數(shù)字似乎暗示了順序,但是我們并不保證線程在操作系統(tǒng)中的調(diào)度順序。

你看到的輸入格式主要是為了確保測(cè)試的全面性。

first:直接執(zhí)行。執(zhí)行完以后將標(biāo)記設(shè)為1

second:等到標(biāo)記為1時(shí)執(zhí)行,執(zhí)行完之后把標(biāo)記設(shè)為2

third:等到標(biāo)記為2時(shí)執(zhí)行。

Java中AtomicInteger類(lèi)提供線程安全的int類(lèi)型操作,具體自己查。

class Foo {private AtomicInteger done = new AtomicInteger(0);public Foo() {}public void first(Runnable printFirst) throws InterruptedException {printFirst.run();done.set(1);}public void second(Runnable printSecond) throws InterruptedException {while (done.get() != 1);printSecond.run();done.set(2);}public void third(Runnable printThird) throws InterruptedException {while (done.get() != 2);printThird.run();} }

?

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的(多线程)leetcode1114. 按序打印 认识AtomicInteger的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。