呼び出し可能インターフェース、およびインターフェースはRunnableをに似ている、呼び出し可能な差はメソッド呼び出しを実装する必要がある、とのRunnable runメソッドを実装する必要があり、かつ、呼び出し方法はまた、任意のオブジェクトを返すことができ、どんなオブジェクト、JVMは、に対処するためのオブジェクトとして管理されません。あなたがジェネリックを使用している場合しかし、我々は常にオブジェクトを変換する必要はありません。
Runnableを、呼び出し可能インターフェースは
違い:
1. 呼び出し可能ではV型を返すことができ、そしてないRunnableを
2 コーラブルはチェック例外をスローし、Runnableをすることはできません。
そこ3.Runnable java1.1であり、コーラブルはわずか1.5の後にリストに追加されたので
4. 呼び出し可能とのRunnableは執行に適用することができます。ThreadクラスはRunnableをサポートしています。
単純に異なる上、実際には、違いを使用して、これら2つのインタフェースが素晴らしいです。タスクはすぐに完了したときに呼び出し可能に執行と一体化し、更新された未来を得ることができます。Runableは、自分で対処しなければなりません
将来のインタフェースは、一般的に呼び出し可能な状態を取得することによって実行されます。主な方法の一つ:
- キャンセル、とき呼び出し可能呼び出し可能な実行が完了していないキャンセル
- 取得するには、呼び出し可能な戻り値を取得します
- キャンセルするかどうかを判断するために、isCanceled
- isDone、かどうかを判断
やるべきスレッドプールを構築するための実行者
1)等の静的メソッドnewCachedThreadPoolエグゼキュータクラス(必要に応じて新しいスレッドを作成し、アイドル状態のスレッドが60秒を保持している)またはnewFixedThreadPool(スレッドプールの固定された数を含む)を、コール、リターンThreadPoolExecutorクラスExecutorServiceのインタフェースを実現し、またはさオブジェクトScheduledExecutorServieceインタフェースを実装するクラスです。
2)を呼び出したRunnableまたはCallableオブジェクトを提出提出します。
3)あなたが仕事をキャンセルしたい、またはあなたがCallableオブジェクトを提出した場合、未来のオブジェクトが返さ保存することが良いでしょう場合。
4)。もはや任意のタスクを提出しない場合、シャットダウンメソッドを呼び出します。
----------------------------