JavaのLinkedBlockingQueueの使い方は?
リンクされたブロッキングキューは、Javaでスレッドセーフなブロッキングキューであり、リンクリストに基づいて実装されており、生産者と消費者の間でデータをやり取りすることができます。
LinkedBlockingQueueを使用する場合は、LinkedBlockingQueueオブジェクトを作成する必要があります。
LinkedBlockingQueue<Integer> queue = new LinkedBlockingQueue<Integer>();
その後、以下の方法を使用してキューに要素を追加できます:
queue.add(element); //添加元素到队列,如果队列已满则抛出异常
queue.offer(element); //添加元素到队列,如果队列已满则返回false
queue.put(element); //添加元素到队列,如果队列已满则阻塞直到队列有空闲位置
要从队列中获取并移除元素,可以使用以下方法:
Integer element = queue.remove(); //获取并移除队列头部的元素,如果队列为空则抛出异常
Integer element = queue.poll(); //获取并移除队列头部的元素,如果队列为空则返回null
Integer element = queue.take(); //获取并移除队列头部的元素,如果队列为空则阻塞直到队列有元素
キューの先頭から要素を取得する方法を示しますが、削除はしません。
Integer element = queue.element(); //获取队列头部的元素,如果队列为空则抛出异常
Integer element = queue.peek(); //获取队列头部的元素,如果队列为空则返回null
重要な点は、LinkedBlockingQueueの容量は動的に調整でき、デフォルトではInteger.MAX_VALUEに設定されています。
上記の方法のほかにも、LinkedBlockingQueueにはキューのサイズを取得したり、キューが空かどうかを判断するなど、他のいくつかのメソッドが提供されています。具体的なニーズに応じて選択することができます。