我有螺紋x
,我開始喜歡這樣的主題:重新啓動線程一旦裏面完成
ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
exec.scheduleAtFixedRate(() -> {
裏面x
我有一個CyclicBarrier
與其他10個線程:
final CyclicBarrier _threadGate = new CyclicBarrier(10);
ArrayList<Thread> _threadList = new ArrayList<>();
然後我添加線程到列表
所以在線程準備好我開始他們,讓他們在同一時間開始(也差不多,循環需要時間,即使其0,01ms)是很重要的:
for (int i = 0; i < _threadList.size(); i++) {
_threadList.get(i).start();
}
現在,x
結束,主線程是這樣的:
}, 0, repeatTimer, TimeUnit.SECONDS);
如果repeatTimer
是300
這意味着它的10線5分鐘後重新開始。
10個線程完成的時間是UNKNOWN金額,但是它不到5分鐘。肯定在2到4分鐘之間。
我想實現
一旦10個線程完成,重啓X,但有5秒的延遲是什麼。
爲此,我一直在考慮將repeatTimer
的值設置爲10個線程+ 5秒所經過的時間(我不知道如何去做,我不知道最後一個線程完成任務時),但這是正確的嗎?還是有另一種方法呢?
您不能重新啓動Java線程。 – Raedwald