多執行緒經典問題1 主線程子執行緒交替問題

2021-09-07 17:21:15 字數 970 閱讀 5997

提出問題:

* 子執行緒迴圈 10 次,接著主線程迴圈 100 次,接著又回到子執行緒迴圈 10 次,接著再回到主線程又迴圈 100 次。如此迴圈50次。

分析:這個實際上是非常easy的問題。即子執行緒run,主線程堵塞--->子執行緒堵塞,主線程run

可以使執行緒堵塞的方法有非常多,最常見的是sleep與wait。當然,須要控制的話,用wait/notify。

子執行緒與主線程共同操作乙個resource 物件。而resource物件中由兩個方法分別實現子執行緒與主線程的操作

物件**例如以下:

package treadgame;

/** * 執行緒間的交流1

* 子執行緒迴圈 10 次,接著主線程迴圈 100 次。接著又回到子執行緒迴圈 10 次,

* 接著再回到主線程又迴圈 100 次。如此迴圈50次

* @author lcx

* */

public class threadexchange1 }}

class resource

catch (interruptedexception e)

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

system.out.println("主線程迴圈次數 "+i);

issub=!issub;

notify(); }

public synchronized void runsub()

catch (interruptedexception e)

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

system.out.println("子執行緒迴圈次數 "+i);

issub=!issub;

notify(); }

}class sub implements runnable

public void run() }

}

WPF 多執行緒 子執行緒操作介面主線程的元素

1 在 中開啟乙個子執行緒 thread cabservice new thread new threadstart datareceiver cabservice.start 每隔2s 產生乙個資料 public void datareceiver thread.sleep 2000 2 定義 和...

主線程 子執行緒死掉 主線程可以在子執行緒之前死掉

我相信主線程不能在子執行緒之前死亡。但是有什麼方法可以檢查嗎?我在下面寫了乙個簡單的程式。任何人都可以證明它實際上離開理論嗎?class childre extends thread public void run for int i 0 i 10 i system.out.println chil...

android 實現主線程 子執行緒雙向通訊

在 android 中,不可以在子執行緒中更新 ui 的操作,否則會報錯或者異常資訊。在這種情況下,我們會使用 handler 在 ui 執行緒建立該物件 接收子執行緒的訊息更新 ui.可以看出,這是子執行緒通知主線程,而主線程沒有直接通知子執行緒,那麼我們如何做到這一點?這樣有什麼好處?好處,很明...