JAVA多執行緒的控制JAVA 5.0--Executor
阿新 • • 發佈:2018-12-17
JAVA多執行緒的控制JAVA 5.0
2010-09-20 10:48
或排定某個工作5秒後執行,之後每30秒執行一次:
submit()方法也接受實作Callable介面的物件,最後傳回Future物件,可以取得Callable執行過後的傳回結果。 如果想利用Executors進行排程,例如排定某個工作30秒後執行:
ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor( );
scheduler.schedule(new Runnable( ) {
public void run() {
// 工作
}
}, 30, TimeUnit.SECONDS);
或排定某個工作5秒後執行,之後每30秒執行一次:
ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor( );
final ScheduledFuture future = scheduler.scheduleAtFixedRate(new Runnable( ) {
public void run() {
// 排程工作
System.out.println("t");
}
}, 0, 5, TimeUnit.SECONDS);
// 排定 60 秒後取消future
scheduler.schedule(new Runnable() {
public void run() {
future.cancel(false);
}
}, 60, TimeUnit.SECONDS);
如上所示,想要取消排程任務,可以呼叫ScheduledFuture的cancel()方法。