LinkedBlockingDequeueを使用して構築されたThreadPoolExecutorがあり、基になるキューを操作したいのですが、ドキュメントでこれを読むと非常に緊張します。
キューのメンテナンス
getQueue()メソッドを使用すると、監視とデバッグを目的としたワークキューへのアクセスが可能になります。この方法を他の目的に使用することは強くお勧めしません。提供されている2つのメソッド、remove(java.lang.Runnable)とpurge()を使用して、キューに入れられた多数のタスクがキャンセルされた場合のストレージの再利用を支援します。
具体的にはできるようになりたい
- キューをチェックして、要素がすでに存在するかどうかを確認します。キュー内の要素を表示するだけでロックは必要ないため、これで問題ないと思います。
- 何らかの信号に基づいてキューを並べ替えたい。これは明らかに面倒な場合があります。他の用途のためにキューを台無しにしないために、これを行うための好ましい方法があるかどうか疑問に思いました。
ありがとう