併發程式設計 執行緒交替列印

2021-10-09 21:23:25 字數 969 閱讀 2839

目錄

一.題目

二.**

我們提供乙個類:

class foobar

}

public void bar() }}

兩個不同的執行緒將會共用乙個 foobar 例項。其中乙個執行緒將會呼叫 foo() 方法,另乙個執行緒將會呼叫 bar() 方法。

請設計修改程式,以確保 "foobar" 被輸出 n 次。

示例 1:

輸入: n = 1

輸出: "foobar"

解釋: 這裡有兩個執行緒被非同步啟動。其中乙個呼叫 foo() 方法, 另乙個呼叫 bar() 方法,"foobar" 將被輸出一次。

示例 2:

輸入: n = 2

輸出: "foobarfoobar"

解釋: "foobar" 將被輸出兩次

public class learn  catch (interruptedexception e) 

});thread thread2 = new thread(() -> catch (interruptedexception e)

});thread1.start();

thread2.start();

}}class foobar

public void foo(runnable printfoo) throws interruptedexception

}public void bar(runnable printbar) throws interruptedexception

}}

執行緒交替列印

建立三個執行緒,a執行緒列印10次a,b執行緒列印10次b,c執行緒列印10次c,要求執行緒同時執行,交替列印10次abc。這個問題用object的wait notify 就可以很方便的解決。主要的思想就是,為了控制執行的順序,必須要先持有prev鎖,也就前乙個執行緒要釋放自身物件鎖,再去申請自身物...

執行緒按順序交替列印

乙個經典的面試題目 編寫乙個程式,開啟3個執行緒。這3個執行緒的id分別為a b c.每個執行緒將自己的id在螢幕上列印10遍。要求輸出的結果必須按順序顯示,如 abcabcabcabcab.public class copyoftestconditioneffect a start new thr...

多執行緒 LeetCode 交替列印FooBar

我們提供乙個類 class foobar public void bar 兩個不同的執行緒將會共用乙個 foobar 例項。其中乙個執行緒將會呼叫 foo 方法,另乙個執行緒將會呼叫 bar 方法。請設計修改程式,以確保 foobar 被輸出 n 次。示例 1 輸入 n 1 輸出 foobar 解釋...