いくつかの方法がある道のスレッドのJava実装?どのように達成するかの戻り値を持つスレッド?

いくつかの方法がある道のスレッドのJava実装?どのように達成するかの戻り値を持つスレッド?

Javaスレッドの開発では、スレッドをオンにする方法はいくつかありますか?あなたはどのように行うには、スレッドによって返された情報を取得する必要がある場合は?あなたは、達成することができますか?戻り値が持ち帰っどのように誰もが糸でソースコードと共有してカイコー。

A:タイプの戻り値なし

1:Threadクラスの継承

2:Runnableを実装します

どちらも、それをキャプチャするすべての一般的に使用されるコードのデモです。

1:スレッドクラス継承文言

定義:タイプは、スレッドクラスを必要と拡張し、その後、Threadクラスのrunメソッドを実装します。

0f03mbCozWy

編集します

2:Runnableを文言を実装します。

実装インタフェースRunable、再runメソッドというクラスを定義します。

コンストラクタを使用して、新しいスレッドオブジェクトは、パラメータが実行可能なパラメータを持っています。その後thread.start()

0f03mcUBm2y

編集します

2:戻り値を持ちます

3:実現呼び出し可能<V>インタフェース

ステップ:

呼び出し可能なAクラスが実装するインタフェース、再呼び出し方法。

コールの時には、参照構造FutureTaskにこのクラスを使用して、スレッドは参照構造を持って使用する必要があります。

getメソッドを呼び出すの最後のタスク。

コードは以下の通りであります:

0f03mcs7xPU

編集します

結果:

0f03mdH2i5w

編集します

呼び出し可能な戻り値出典:

戻り値がFutureTaskから取得されるので、私たちは、FutureTaskこのクラスから始めます。クラス図を見てみましょう:

0f03meLGLr6

編集します

FutureTaskはRunnableFutureインターフェイス、RunnableFutureインタフェース継承未来と、Runnableインタフェースを実現します。

0f03medKOki

編集します

0f03mf52aVE

編集します

私たちは、ノーリターンの唯一のラン値方法を見出し、RunnableFutureこのインタフェースを見て。その後、返されたデータは、それを達成するためのクラスのスレッドのですか?実際FutureTaskクラスの内部で。私たちは、FuntrueTaskこのカテゴリを見てみましょう:

0f03mfPPstk

編集します

再実行する方法。最後に、設定した結果があります。セット方法がありますので。デモtask.get()メソッドを見てみましょう:

0f03mfozI5g

編集します

メソッドに戻り値を取得します。

このように、発見された値を返す理由で呼び出し可能なインターフェースを実現しています。

4:作成するために、スレッドプールのスレッドを使用します

スレッドプール内のスレッドの使用が作成され、あなたが値を返すことはできません、戻り値を持つことができます。使用履行に対処するために、このトップレベルのインタフェース。

のは、関係エグゼキュータ・インターフェースを見てみましょう。図は次のとおりです。

0f03mgPDELA

編集します

おなじみThreadPoolExecutorおよびScheduledThreadPoolExecutorのを見て、どの

4.1:エグゼキュータは、ノーリターンの価値がスレッドを作成していない使用:

0f03mh928Jc

編集します

説明:ここでの戻り値のない、実際には、Runnableを実行するメソッドを呼び出します。

4.2:戻り値とデモ

呼び出し可能インターフェースを実装するクラスを作成します。図は次のとおりです。

0f03mhdB0T2

編集します

このインタフェースを通じて、我々は、戻り値があることを知っています。

0f03mi4A9QW

編集します

3:要約

Javaスレッドは、4つの方法を実施しています。

私たちは、ほとんどの引き換えに価値の無い2種類に精通しているだけでなく、戻り値には2つの方法です。彼らは以下のとおりです。

スレッド、Runnableを、呼び出し可能とスレッドプール


おすすめ

転載: blog.51cto.com/kaigejava/2477296