java实现消息队列(附完整源码)
时间: 2023-11-09 08:07:44 浏览: 109
以下是Java实现消息队列的完整源码:
```java
import java.util.LinkedList;
import java.util.Queue;
public class MessageQueue<T> {
private Queue<T> queue = new LinkedList<>();
public synchronized void enqueue(T message) {
queue.offer(message);
notify();
}
public synchronized T dequeue() throws InterruptedException {
while (queue.isEmpty()) {
wait();
}
return queue.poll();
}
}
```
在这个示例中,我们使用`Queue`接口和`LinkedList`类来实现消息队列。`enqueue()`方法用于将消息添加到队列中,`dequeue()`方法用于从队列中获取消息。这两个方法都使用`synchronized`关键字来确保线程安全。
`dequeue()`方法在队列为空时会进入等待状态,直到有新的消息被添加到队列中并唤醒线程。这里使用了`wait()`和`notify()`方法来实现等待和唤醒操作。
你可以根据需要修改`MessageQueue`类的类型参数`<T>`,以适应不同类型的消息。创建`MessageQueue`对象后,你可以使用`enqueue()`方法将消息添加到队列中,使用`dequeue()`方法获取队列中的下一条消息。
阅读全文