将来の課題の使い方は何ですか?
FutureTaskは、Javaの一つのクラスで、非同期タスクの結果が生じる可能性を表すために使用されます。これはマルチスレッドプログラミングに使用され、通常ExecutorServiceと一緒に使われます。
FutureTaskを使用する一般的な手順は次の通りです:
- Callableオブジェクトを作成し、非同期に実行するタスクを実行するためにcall()メソッドを実装してください。call()メソッドの戻り値の型はFutureTaskのジェネリック型と一致している必要があります。
Callable<Integer> callable = new Callable<Integer>() {
@Override
public Integer call() throws Exception {
// 执行异步任务
return 42;
}
};
- Callableオブジェクトをパラメーターとして渡して、FutureTaskオブジェクトを作成します。
FutureTask<Integer> futureTask = new FutureTask<>(callable);
- スレッドプールを作成し、FutureTaskオブジェクトをスレッドプールに送信して実行させる。
ExecutorService executor = Executors.newFixedThreadPool(1);
executor.submit(futureTask);
- FutureTaskのget()メソッドを使用すると非同期タスクの結果を取得できます。タスクがまだ完了していない場合、get()メソッドは現在のスレッドをブロックし、タスクが完了するまで待機します。
try {
Integer result = futureTask.get();
System.out.println("异步任务的结果是:" + result);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
上記の手順に従えば、FutureTaskを使用して非同期タスクを実行し、結果を取得できます。