Java : Executor - API使用例
Executor (Java SE 19 & JDK 19) の使用例まとめです。
API仕様のおともにどうぞ。
概要
送信されたRunnableタスクを実行するオブジェクトです。 このインタフェースは、タスク送信を各タスクの実行方式(スレッドの使用やスケジューリングの詳細などを含む)から分離する方法を提供します。
Executorは、Runnable を実行する単純なインタフェースです。
一般的には、サブインタフェースである ExecutorService を使ってスレッド処理をすることが多いと思います。
ExecutorService は Executors で生成できます。
try (final var executorService = Executors.newSingleThreadExecutor()) {
final Runnable command = () -> {
System.out.println(" command start");
System.out.println(" thread id = " + Thread.currentThread().threadId());
};
System.out.println("-- execute start --");
System.out.println("thread id = " + Thread.currentThread().threadId());
executorService.execute(command);
System.out.println("-- execute end --");
}
System.out.println("-- executor terminated --");
// 結果
// ↓
//-- execute start --
//thread id = 1
//-- execute end --
// command start
// thread id = 33
//-- executor terminated --
メソッド
void execute (Runnable command)
将来のどの時点かで、指定されたコマンドを実行します。
概要のコード例も合わせてご確認ください。
class DirectExecutor implements Executor {
public void execute(Runnable command) {
command.run();
}
}
final var executor = new DirectExecutor();
executor.execute(() -> System.out.println("Run!"));
// 結果
// ↓
//Run!