概要
単一のスレッドを持つスケジュール可能なスレッドプールを作成するためのメソッド。
例
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class SingleThreadScheduledExecutorExample {
public static void main(String[] args) {
ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
// タスクをスケジュール
executorService.schedule(() -> {
System.out.println("Task executed after 2 seconds.");
}, 2, TimeUnit.SECONDS);
// ExecutorServiceを終了する
executorService.shutdown();
}
}
上記の例ではnewSingleThreadScheduledExecutor()
メソッドを使用してScheduledExecutorService
のインスタンスを作成している。
このスレッドプールは単一のスレッドを持ち、schedule()
メソッドを使用してタスクをスケジュールしている。
引数には以下を指定する。
- 第1引数:実行するタスク
- 第2引数:遅延時間
この例では、2秒後に指定したタスクが実行される。
プログラムを実行すると、指定した遅延時間後にタスクが実行される。
実行結果
Task executed after 2 seconds.
生成されたScheduledExecutorService
は、必要に応じてshutdown()
メソッドを呼び出してスレッドプールを終了する必要がある。
これにより、プログラムの終了時にスレッドプールが適切にシャットダウンされ、リソースの解放が行われる。
使用場面
- タスクの実行をシングルスレッドで順序立てて行いたい場合。
- 予定されたタスクの実行や定期的なタスクのスケジュールを行いたい場合。