StreadPoolexecutorの基礎となるキューに安全な方法でアクセスする方法

StackOverflow https://stackoverflow.com/questions/5935454

  •  30-10-2019
  •  | 
  •  

質問

getqueue()メソッドは、ThreadPoolexecutorの基礎となるブロッキングキューへのアクセスを提供しますが、これは安全ではないようです。

この関数によって返されたキュー上のトラバーサルは、ThreadPoolexecutorによってキューに加えられた更新を逃す可能性があります。

「Method getqueue()を使用すると、監視とデバッグの目的で作業キューにアクセスできます。他の目的のためにこのメソッドを使用することは強く落胆します。」

ThreadPoolexecutorが使用しているワーククを通過したい場合はどうしますか?または、別のアプローチがありますか?

これはの継続です。プロデューサーの消費者問題の変種のためのデータ構造の選択

今、私は複数のプロデューサーの複数の消費者を試していますが、既存のThreadPoolを使用したいのですが、スレッドプールを自分で管理したくないので、スレッドプールエクセクターが検査する能力とともにタスクの実行を終了したときにコールバックが必要です。スレッド安全な方法では、「Inprogress Transactions」データ構造。

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top