java写一个监听LinkedBlockingQueue队列的
时间: 2024-06-13 10:08:10 浏览: 189
java中LinkedBlockingQueue与ArrayBlockingQueue的异同
5星 · 资源好评率100%
以下是Java监听LinkedBlockingQueue队列的示例代码:
```java
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
public class QueueListener implements Runnable {
private BlockingQueue<String> queue;
public QueueListener(BlockingQueue<String> queue) {
this.queue = queue;
}
@Override
public void run() {
try {
while (true) {
String message = queue.take(); // 从队列中取出消息
System.out.println("Received message: " + message);
// 在这里可以对消息进行处理
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
public static void main(String[] args) {
BlockingQueue<String> queue = new LinkedBlockingQueue<>(5);
QueueListener listener = new QueueListener(queue);
Thread thread = new Thread(listener);
thread.start();
// 在这里可以往队列中添加消息
}
}
```
该示例代码中,我们创建了一个`QueueListener`类,实现了`Runnable`接口,用于监听`LinkedBlockingQueue`队列。在`run()`方法中,我们使用`take()`方法从队列中取出消息,并对消息进行处理。在`main()`方法中,我们创建了一个`LinkedBlockingQueue`队列,并启动了一个线程来监听该队列。你可以在`main()`方法中往队列中添加消息,然后观察控制台输出。
阅读全文