1. AbortPolicy: この拒否戦略は、タスクを拒否するときに RejectedExecutionException タイプの RuntimeException を直接発生させます。タスクが拒否された場合は、ビジネス ロジックに従って再試行するか、送信を中止することができます。 DiscardPolicy: 新しいタスクの送信 その後、何の通知もなく直接破棄されるため、一定のリスクがあり、データ損失の可能性があります。
3. DiscardOldestPolicy: 新しいタスクが送信された後、生存時間が最も長いタスクが破棄され、データが失われるリスクもあります。
4. CallerRunsPolicy: 新しいタスクが送信されると、そのタスクはそのタスクを送信したスレッドに送信されます。つまり、タスクを送信した人がそのタスクに対して責任を負います。これを行うことには主に 2 つの利点があります。
まず、新しく提出されたタスクは放棄されず、ビジネス損失を引き起こすことはありません。
2 番目に、タスクを送信した人がそのタスクの責任を負うため、タスクを送信したルートがそのタスクを担当する必要があり、タスクの実行には時間がかかります。この間、タスクを送信したルートはタスクが占有されており、新しいタスクが送信されず、タスクの送信速度が変化します。遅い、負のフィードバックに相当します。この期間中、スレッド プール内のスレッドはこの時間を最大限に利用していくつかのタスクを実行し、一定量の領域を解放することもできます。これは、スレッド プールに一定のバッファ期間を与えるのと同じです。
Java にはどのようなコレクション クラスがありますか?
1. リスト: 順序付け、反復可能;
# 2. キュー: 順序付けされており、繰り返し可能; 3. セット: 繰り返し不可能; 4. マップ: 順序付けされておらず、一意のキーと一意でない値を使用します。以上がJavaスレッドプールの拒否ポリシーは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。