いくつかの方法がある道のスレッドのJava実装?どのように達成するかの戻り値を持つスレッド?
Javaスレッドの開発では、スレッドをオンにする方法はいくつかありますか?あなたはどのように行うには、スレッドによって返された情報を取得する必要がある場合は?あなたは、達成することができますか?戻り値が持ち帰っどのように誰もが糸でソースコードと共有してカイコー。
A:タイプの戻り値なし
1:Threadクラスの継承
2:Runnableを実装します
どちらも、それをキャプチャするすべての一般的に使用されるコードのデモです。
1:スレッドクラス継承文言
定義:タイプは、スレッドクラスを必要と拡張し、その後、Threadクラスのrunメソッドを実装します。
編集します
2:Runnableを文言を実装します。
実装インタフェースRunable、再runメソッドというクラスを定義します。
コンストラクタを使用して、新しいスレッドオブジェクトは、パラメータが実行可能なパラメータを持っています。その後thread.start()
編集します
2:戻り値を持ちます
3:実現呼び出し可能<V>インタフェース
ステップ:
呼び出し可能なAクラスが実装するインタフェース、再呼び出し方法。
コールの時には、参照構造FutureTaskにこのクラスを使用して、スレッドは参照構造を持って使用する必要があります。
getメソッドを呼び出すの最後のタスク。
コードは以下の通りであります:
編集します
結果:
編集します
呼び出し可能な戻り値出典:
戻り値がFutureTaskから取得されるので、私たちは、FutureTaskこのクラスから始めます。クラス図を見てみましょう:
編集します
FutureTaskはRunnableFutureインターフェイス、RunnableFutureインタフェース継承未来と、Runnableインタフェースを実現します。
編集します
編集します
私たちは、ノーリターンの唯一のラン値方法を見出し、RunnableFutureこのインタフェースを見て。その後、返されたデータは、それを達成するためのクラスのスレッドのですか?実際FutureTaskクラスの内部で。私たちは、FuntrueTaskこのカテゴリを見てみましょう:
編集します
再実行する方法。最後に、設定した結果があります。セット方法がありますので。デモtask.get()メソッドを見てみましょう:
編集します
メソッドに戻り値を取得します。
このように、発見された値を返す理由で呼び出し可能なインターフェースを実現しています。
4:作成するために、スレッドプールのスレッドを使用します
スレッドプール内のスレッドの使用が作成され、あなたが値を返すことはできません、戻り値を持つことができます。使用履行に対処するために、このトップレベルのインタフェース。
のは、関係エグゼキュータ・インターフェースを見てみましょう。図は次のとおりです。
編集します
おなじみThreadPoolExecutorおよびScheduledThreadPoolExecutorのを見て、どの
4.1:エグゼキュータは、ノーリターンの価値がスレッドを作成していない使用:
編集します
説明:ここでの戻り値のない、実際には、Runnableを実行するメソッドを呼び出します。
4.2:戻り値とデモ
呼び出し可能インターフェースを実装するクラスを作成します。図は次のとおりです。
編集します
このインタフェースを通じて、我々は、戻り値があることを知っています。
編集します
3:要約
Javaスレッドは、4つの方法を実施しています。
私たちは、ほとんどの引き換えに価値の無い2種類に精通しているだけでなく、戻り値には2つの方法です。彼らは以下のとおりです。
スレッド、Runnableを、呼び出し可能とスレッドプール