java.util.concurrent.ConcurrentLinkedQueue
頭に浮かびますが、この2スレッドのシナリオには本当に最適ですか?両側(プロデューサーとコンシューマー)で可能な最小のレイテンシーを探しています。キューが空の場合はすぐにnullを返すことができ、キューがいっぱいの場合は提供しているエントリをすぐに破棄できます。
ConcurrentLinkedQueueは超高速で軽いロック(AtomicBoolean)を使用しますか?誰かがConcurrentLinkedQueueのベンチマークを行ったことがありますか、それを行うための究極の最速の方法を知っていますか?
追加の詳細:キューは公平なものである必要があると思います。つまり、コンシューマーは、必要以上に(フロントランニングによって)コンシューマーを待たせてはならず、その逆も同様です。