Javaの基礎 - スレッドを作成するために、呼び出し可能インターフェースを達成するために

呼び出し可能なパッケージ; 

/ * 
スレッド三つの方法を作成します。達成呼び出し可能インターフェースは、

クラスが実装呼び出し可能な実装を作成1. 
2.にメソッド呼び出しの実現を、このスレッドが操作を実行する必要があり、二次プロセスの中で宣言は
、オブジェクト呼び出し可能インターフェース・クラスを作成します。3. 
4物体FutureTask作成し、AパラメータFutureTaskコンストラクタとしてこのオブジェクトを投げる
、スレッドオブジェクトを作成するために、オブジェクトコンストラクタとして5 FutureTaskスレッドオブジェクトをスタート()
FutureTaskを使用し、6必要なメソッドの戻り値の場合を。取得するには()メソッドを取得

理解:
    1.call()は値を返すことができます
    (2.call)を例外情報の取得するための手順をキャッチされ、例外をスローすることができます
    ジェネリック医薬品に3.Callableサポートを

@author zsben 
@Create 2020から01午後2時31分-05 
* / 

インポートjava.util.concurrent.Callable; 
インポートjava.util.concurrent.ExecutionException; 
インポートjava.util.concurrent.FutureTask; 

クラスNumThread実装呼び出し可能{ 

    @Override 
    公衆オブジェクトの呼び出しは()例外{スロー
         int型の和= 0 ;
        INTは iは= 2、I <= 100、I + =; 2 {)
            システム。アウト.println(I); 
            合計 + = I; 
        } 
        戻り値の和。// 自动装箱了
    } 
} 


パブリック クラスCallableTest {
     公共 静的 ボイドメイン(文字列[]引数){ 
        NumThread numThread = 新しいNumThread()。

        FutureTask futureTask =新しい新しいFutureTask(numThread);
         新しい新しいスレッド(FutureTask).start(); // FutureTask道具、Runnableインタフェース、スレッドはコールstart()を起動する

        試みは{
             // GET()値が呼び出し可能なコンストラクタパラメータFutureTaskオーバーライド実装クラスで返します。呼び出し()の値を返し 
            、オブジェクトSUM = FutureTaskを。GET (); 
            。システムOUTの.println(SUM); 
        } キャッチ(InterruptedExceptionあるE){ 
            e.printStackTrace(); 
        } キャッチ(ExecutionException E){ 
            e.printStackTrace() ; 
        } 

    } 
}

おすすめ

転載: www.cnblogs.com/zsben991126/p/12153099.html