1.概要
1.1 JDK1.5後、Javaが提供する呼び出し可能なインターフェイスをインターフェイスが実行のスレッドとしてメソッド呼び出しを提供し、呼び出し方法は、文が例外をスローし、戻り値を持つことができます。
したがって、我々はターゲットとして直接呼び出し可能インターフェースをスレッドを作成、することができますが:呼び出し可能インターフェースはRunnableを実装クラスではありません新しいインターフェースです。
JDK1.5は、次に提供未来のインタフェースを、そしてFutureTask、将来のインタフェースの実装クラス(Runnableをインターフェーススレッドを実装ターゲットとして使用することができる)を提供します。
1.2 スレッドの戻り値があり、起動し、作成します:
1.2.1 callメソッドを実装して、呼び出し可能インターフェースの実装クラスを作成します。
1.2.2 FutureTask、カプセル化を実装するクラスのインスタンスを作成し、そして、
1.2.3 FutureTaskは、開始()オープンスレッドを呼び出し、ターゲットとしてスレッドスレッドインスタンスのインスタンスを作成します。
1.2.4コールは、サブスレッド実行の戻り値を取得する方法の一例をFutureTask。
パッケージcom.an。 輸入java.util.concurrent.Callable。 輸入java.util.concurrent.FutureTask。 パブリッククラスCallableImplが実装コーラブル{ / ** *线程执行体 * @return * @throws例外 * / パブリックオブジェクトの呼び出しは()例外をスロー{ int型私= 0; 用(; iは<10; iが++){ } iを返します。 } 公共の静的な無効メイン(文字列[]引数)が例外をスロー{ ため(INT i = 0; iは<30; I ++){ System.out.printlnは(にThread.currentThread()のgetName()+ "=" + I) ; IF(I == 5){ FutureTask futureTask =新しいFutureTask(新しいCallableImpl())。 スレッドスレッド=新しいスレッド(futureTask、 "有返回值的线程"); thread.start(); thread.join(); System.out.println(futureTask.get())。 } } } }