有三個執行緒id分別是a、b、c,請有多線程式設計實現,在螢幕上迴圈列印10次abcabc…
由於執行緒執行的不確定性,要保證這樣有序的輸出,必須控制好多執行緒的同步。
執行緒同步有兩種基本方法:
(1) synchronized
(2) wait,notify,notifyall
現在分別採用這兩種方法來解答這道題目。
public class demo01
class method1 implements runnable
@override
public void run()
count--;
if (this.name.equals("a")) else if (this.name.equals("b")) else if (this.name.equals("c")) }}
}}class startlock
public void setname(string name)
//方法(二)執行緒類修改如下,其他類一樣:
class method2 implements runnable
@override
public void run() catch(interruptedexception e)
}system.out.print(name);
count--;
if (this.name.equals("a")) else if (this.name.equals("b")) else if (this.name.equals("c"))
lock.notifyall();}}
}
Java多執行緒面試題
執行緒池的原理,為什麼要建立執行緒池?將預先建立好的執行緒放入執行緒池當中。當有執行緒請求時,則從執行緒池中呼叫執行緒,呼叫結束之後歸還執行緒。當出現需要建立大量執行緒的情況時,反覆的建立執行緒會造成大量的效能損耗。使用執行緒池能降低損耗,提高響應的速度,方便管理執行緒。執行緒的生命週期,什麼時候會...
java多執行緒面試題1
假設如下 中,若t1執行緒在t2執行緒啟動之前已經完成啟動。的輸出是 public static void main stringargs throws exception catch interruptedexception e t1.start thread.sleep 1000 we assu...
多執行緒Java面試題總結
57 thread類的sleep 方法和物件的wait 方法都可以讓執行緒暫停執行,它們有什麼區別?答 sleep 方法 休眠 是執行緒類 thread 的靜態方法,呼叫此方法會讓當前執行緒暫停執行指定的時間,將執行機會 cpu 讓給其他執行緒,但是物件的鎖依然保持,因此休眠時 間結束後會自動恢復 ...