この記事の例は、Javaでのエグゼキューターインターフェイスの使用を示しています。あなたの参照のために全員のためにそれを共有してください。詳細は次のとおりです。
1。Javaの執行者インターフェイスの定義
public interface executor {void execute(runnable commit);}
2。執行者の静的な工場メソッドによってスレッドプールを作成します。
a)newFixedThreadPool:長いスレッドプールを作成します。スレッドの最大数に到達した後、スレッドの数は増加しなくなります。
予想される例外のためにスレッドが終了すると、スレッドプールは新しいスレッドを補完します。
b)NewCachedhreadPool:キャッシュ可能なスレッドプールを作成します。プールの長さが処理要件を超えると、アイドルスレッドを回復できます。
c)NewsInglethreadPool:単一のスレッドエグゼキューターを作成します。
d)NewsCheduledhreadPool:長期のスレッドプールを作成し、時間期間と定期的なタスクの実行をサポートします。
タイマーに似ています。ただし、タイマーは絶対時間に基づいており、システムクロックの変化に敏感ですが、スケジュールされたThreadPoolexecutorは相対的な時間のみをサポートしています。
3.タイマークラスのアプリケーションの概要を比較します
1)タイマーは、すべてのタイマータスクを実行する唯一のスレッドです。タスクが時間外である場合、他のティマタスク時間が正確に問題を引き起こします。
2)Timrtaskが異常のチェックを外すと、タイマーは予測不可能な動作をします。したがって、ScheduledHreadPoolexecutorはタイマーを完全に置き換えることができます。
3)実行サービスのライフサイクルを解決するために、executorserviceインターフェイスがエグゼクティを拡大します。スレッドプールには、ランニング、シャットダウン、終了の3つの状態が含まれます。
4。コール可能かつ未来
runnableは値を返さず、チェックされた異常から捨てることができないため、呼び出すことはより良い抽象化です。 (Callable <void>は、返品値なしのタスクを示します)。
Futureでは、タスクのライフサイクルを説明し、タスクの結果を取得し、タスクをキャンセルし、タスクを確認して完了またはキャンセルするための関連方法を提供します。
5.compltingserviceは、エグゼキューターとブロックキューの関数を統合します。
その見解と世論調査は、タスクの完了をブロックする可能性があります。
この記事がすべての人のJavaプログラムのデザインに役立つことが期待されています。