多執行緒的學習

2021-07-26 11:58:27 字數 850 閱讀 1839

閒來無事,在逛論壇時偶然看到這樣一道題:

子執行緒迴圈十次,接著主線程迴圈一百次,接著又回到子執行緒迴圈十次,然後主線程再迴圈一百次,如此迴圈往復,迴圈五十次。

嘗試著做了一下,首先定義了乙個內部類circle,類中有兩個方法分別演示子線和主線的迴圈,main方法和sub方法,並給這兩個方法加鎖,用synchronized修飾方法。接著在主函式中定義了乙個多執行緒方法,用來輸出五十次的子執行緒迴圈,在方法內進行了五十次的主線程迴圈。此時可以輸出五十次的主線和子線了,但是順序亂了,並不能按題目要求的那樣先子線迴圈十次接著主線迴圈一百次,解決辦法是定義乙個nowsub的布林方法,每次執行前先判斷,符合時執行,不符合時等待,執行結束後用notify喚起等待執行緒。

實現**如下:

public class communication 

}}).start();

for(int i=1;i<=50;i++)

} static class circle catch (interruptedexception e)

}for(int j=1;j<=10;j++)

nowsub=false;

notify();

} public synchronized void main(int i) catch (interruptedexception e)

}for(int j=1;j<=100;j++)

nowsub=true;

notify();

} }}

輸出的結果如下

多執行緒的學習

工作需要要用到多執行緒了,呵呵,高科技呀 public partial class form1 form delegate void lbdelegate private void button1 click object sender,eventargs e private void gettim...

多執行緒的學習

多執行緒的建立方式有兩種 繼承thread類,並覆蓋run 方法 實現runnable介面,並實現run 方法 其中run 方法中存放的是執行緒執行的 其中實現介面的方式避免了單繼承的侷限性,定義執行緒時,建議使用實現介面的方式。學習多執行緒,要認清多執行緒的5種執行狀態,這5種狀態分別是 建立,執...

多執行緒學習

thread和runnable的區別 單繼承模式thread 而 runnable是介面 start 和run的區別 start是乙個執行緒只能啟動,run可以執行多次,並且run是呼叫當前正在執行的執行緒 wait notify object物件所具有的 sleep setpriority 同步機...