FutureTaskのソースコード解析
ExecutorServiceを介してCallableやRunnableタスクをスレッドプールに提出し、その結果を待機またはキャンセルするためのFutureオブジェクトを取得することができます。
public interface ExecutorService extends Executor {
...
<T> Future<T> submit(Callable<T> task);
<T> Future<T> submit(Runnable task, T result);
Future<?& ...
6月21日 01:01 投稿
Javaにおけるスレッド生成パターンの実践ガイド
Thread クラスを継承する方法
class PrimeCounter extends Thread {
@Override
public void run() {
System.out.println("スレッド名: " + Thread.currentThread().getName());
}
}
public static void main(String[] args) {
PrimeCounter counter = new PrimeCounter();
counter.start();
}
Runnable インターフェースを実装する方法
cla ...
6月5日 17:28 投稿
JavaにおけるCallableとFutureTaskを活用したスレッド実装と戻り値の取得
Threadクラスの継承やRunnableインタフェースの実装といった従来のアプローチでは、run()メソッドがvoidを返す仕様であるため、並列処理の結果を呼び出し元で直接受け取ることができません。計算結果やデータ取得処理を非同期で実行しつつ、その戻り値を主スレッドで利用したい場合、CallableおよびFuture(実運用ではFutureTaskを経由)を利用する方式が標準的です。この ...
5月20日 14:08 投稿
Javaの高並行処理:Callableインターフェースによるスレッド作成手法
これまでスレッドを作成する方法として、Threadクラスの継承やRunnableインターフェースの実装があることを学んできました。
ここでは、新しいスレッド作成手段としてCallableインターフェースについて説明します。まず、RunnableインターフェースとCallableインターフェースの違いを比較しましょう。
それぞれのインターフェースを実装したクラスを定義します:
// Runnab ...
5月19日 04:06 投稿