ExecutorとFuture
Executorを使ってスレッドを管理し、Futureで結果を扱う方法を学びます。
「ExecutorとFuture」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン1/2です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全2レッスンが含まれています。
導入
Executorはスレッド管理を簡単にします。Futureは非同期で実行されるタスクの結果を提供します。
ExecutorService
ExecutorServiceはスレッドのプールを管理するため、毎回手動でスレッドを作成する必要がありません。
コード:Runnable を送信する
このコードは、2つのスレッドを持つ ExecutorService に Runnable を送信します。
import java.util.concurrent.*;public class Main {
public static void main(String[] args) {
ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> System.out.println("Task executed"));
executor.shutdown();
}
}
Future
Future<T>は非同期タスクの結果を表します。get()を呼び出すと、結果を待機できます。
コード:Callable と Future
このコードは Integer を返す Callable を送信します。get()は結果が準備できるまでブロックします。
import java.util.concurrent.*;public class Main {
public static void main(String[] args) throws Exception {
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<Integer> f = executor.submit(() -> 2 + 3);
System.out.println("Result: " + f.get());
executor.shutdown();
}
}
タイムアウトとシャットダウン
get(timeout)を設定すると、永遠に待機することを避けられます。ExecutorService では必ず shutdown() を呼び出してください。
Future の確認
クイックチェック:Java において Future は何を表しますか。
まとめ
まとめ:Executor はスレッドを管理します。Future は結果を表します。タスクには submit()、結果には get()、完了時には shutdown() を使用します。
よくある質問
「ExecutorとFuture」レッスンは無料ですか?
はい。「ExecutorとFuture」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全2レッスンが含まれています。
「ExecutorとFuture」で何を学びますか?
Executorを使ってスレッドを管理し、Futureで結果を扱う方法を学びます。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Java Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/2です。
「ExecutorとFuture」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJava Academyレッスンでコードを書いて実行できますか?
はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ExecutorとFuture
- タスクとライフサイクル