我知道使用睡眠方法延遲線程的傳統方式。我的問題是所謂我有以下幾點:Java線程:線程之間的執行程序服務延遲
ExecutorService threadExecutor = Executors.newFixedThreadPool(5);
有沒有辦法使用的ExecutorService類,以便在不使用的睡眠方法,每個線程之間的延遲說呢?我的意思是在這個目的下有一個ExecutorService類的方法嗎?
我知道使用睡眠方法延遲線程的傳統方式。我的問題是所謂我有以下幾點:Java線程:線程之間的執行程序服務延遲
ExecutorService threadExecutor = Executors.newFixedThreadPool(5);
有沒有辦法使用的ExecutorService類,以便在不使用的睡眠方法,每個線程之間的延遲說呢?我的意思是在這個目的下有一個ExecutorService類的方法嗎?
你的意思是這樣
ScheduledExecutorService service = Executors.newScheduledThreadPool(5);
service.scheduleAtFixedRate(task, initialDelay, period, TimeUnit.MILLISECONDS);
如果你想三個任務10秒分開,你可以做
service.execute(task1);
service.schedule(task2, 10, TimeUnit.SECONDS);
service.schedule(task3, 20, TimeUnit.SECONDS);
我認爲上述情況會導致某個特定任務的週期性延遲 - 這意味着相同的任務會在一個週期性的時間段內運行。我想要的是任務之間的延遲,例如任務1(runnable obj1)首先運行,任務2(runnable obj2)在提交runnable obj1 10秒後開始運行。我想知道這是否可以使用ExecutorService或某種類型.. – yapkm01 2012-01-06 16:05:57
根據您的意見更新。 – 2012-01-06 16:18:27
Whjat你的意思是「每個線程之間的延遲」?你在每個提交的任務的執行之間拖延了嗎? – skaffman 2012-01-06 15:27:18
你能否說出延遲的原因?大多數情況下,您會讓Runnables/Futures使用某種阻塞。此外,您需要哪些功能使sleep()不適合使用? – 2012-01-06 15:28:16
類文檔沒有列出任何內容。 http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ExecutorService.html – Max 2012-01-06 15:29:30