何らかの要因に基づいて、異なる時間に 2 つの異なるスレッドによってオブジェクトが追加および削除されるキューを実装する必要があります。私の問題は、キュー (キュー全体とそれが保持するデータ) が 200KB 以上のデータを取得してはならないという要件です。スレッドは 200 であり、より多くのデータをプッシュするためのスペースが使用可能になるまで待機する必要があります。プッシュされるオブジェクトのサイズは異なる場合があります。Java キューを作成できますが、キューのサイズは、使用されているメモリの合計ではなく、プッシュされたオブジェクトの合計を返します。私のキューが参照しているデータの。
プッシュされたオブジェクトを次のように考えます
class A{
int x;
byte[] buf;//array size vary per object
}