當我們在使用執行緒中,你會發現主線結束後子執行緒的結果才顯示出來。現在我要等待所以子執行緒結束,然後在顯示結果,怎麼做呢?
方法如下:
1、使用 manualresetevent,**如下:
using system.threading;
namespace threadstudy
waithandle.waitall(manualevents.toarray());
console.writeline("thread finished!");
}private void threadmethod(object obj)
} }
此種方法執行緒中只傳遞了訊號,那要傳遞引數怎麼辦?可以採用類,將訊號放在類中來解決,**如下。
using system.threading;
namespace threadstudy
waithandle.waitall(manualevents.toarray());
console.writeline("thread finished!");
}private void threadmethod(object obj)
", pra.pradata);}}
public class param
}
2、判斷執行緒數
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading;
namespace threadstudy
int maxworkerthreads, workerthreads;
int portthreads;
while (true)
}
}
private void threadmethod(object i)
", i.tostring());}}
}
3、使用monitor
using system.threading;
namespace threadstudy
lock (locker)
}
console.writeline("thread finished!");
}private void threadmethod(object obj)
", obj.tostring());
lock (locker)
}
} }
Java主線程等待所有子執行緒執行完畢
需求 main方法中建立了執行緒,子執行緒沒有執行結束的時候主線程執行結束了,利用join又不能保證併發執行,目的是主線程等待其子執行緒執行完成之後退出 實現 利用hook實現jvm的等待執行 業務執行緒 class customerthread implements runnable catch ...
java主線程等待所有子執行緒執行完畢在執行
用sleep方法,讓主線程睡眠一段時間,當然這個睡眠時間是主觀的時間,是我們自己定的,這個方法不推薦,但是在這裡還是寫一下,畢竟是解決方法 下面結合這個問題我介紹一些並發包裡非常有用的併發工具類 3.等待多執行緒完成的countdownlatch 4.同步屏障cyclicbarrier 寫到這裡大家...
java主線程等待所有子執行緒執行完畢在執行
用sleep方法,讓主線程睡眠一段時間,當然這個睡眠時間是主觀的時間,是我們自己定的,這個方法不推薦,但是在這裡還是寫一下,畢竟是解決方法 下面結合這個問題我介紹一些並發包裡非常有用的併發工具類 3.等待多執行緒完成的countdownlatch 4.同步屏障cyclicbarrier 寫到這裡大家...