Java に FIFO キューの実装があるかどうか、またはユーザーが最大サイズを設定できる他のライブラリがあり、キューがいっぱいになったときにリクエストを自動的に拒否するかどうかを知っている人はいますか?
グアバキューの実装を見てきましたが、私が見たところ、キューがいっぱいになると、リクエストを拒否するのではなく、キューの最初の要素が削除されます。
組み込みのキューのほとんどがこれを行います。これは限られたサイズに自然に適合するため、ArrayBlockingQueue をお勧めしますが、LinkedBlockingQueue も使用できます。BlockingDeque(s) も制限をサポートします。
ところで、スレッドでキューを使用している場合は、これらを 1 つにまとめた ExecutorService を使用することをお勧めします。
次のような単純なキューに対してデコレータ パターンを使用します。
Queue<String> queue = new LinkedList<String>();
ラッパー コードにより、最大サイズが強制的に追加され、余分な追加が拒否されるようになります。