我有一個線程A
,它在while(running)
循環內執行定期操作。然後我有另一個線程,B
,它偵聽用戶輸入。當用戶按下按鈕時,線程B
會產生一個新線程來執行任務(我們稱之爲線程C
的一個實例)。這項任務涉及通過互聯網發送信息,可能需要長達20秒。一次可以有多個C
活動實例。從外部產卵線程檢測另一個線程的實例
我遇到的問題是這樣的。我想線程A
只運行它的代碼,如果沒有線程'C'目前處於活動狀態。爲了更清楚,線程A看起來是這樣的:
class ThreadA extends Thread{
public void run(){
while(running){
performAction();
Thread.sleep(1000);
}
}
}
如果檢測到的C
一個實例,那麼顯然我不希望performAction()
被調用。如果線程當前正在執行performAction()
,那麼我想在當前的進程中停止執行。
我不知道如何着手,因爲我不知道我怎麼會從線程A
This [answer](http://stackoverflow.com/a/1323480/187492)顯示如何遍歷正在運行的線程列表。 – Martin