JAVA写一个非阻塞队列
时间: 2023-03-25 14:00:55 浏览: 150
非阻塞队列是一种线程安全的队列,它允许多个线程同时读写队列,而不会发生阻塞。在Java中,可以使用ConcurrentLinkedQueue类来实现非阻塞队列。
ConcurrentLinkedQueue类是Java集合框架中的一部分,它实现了Queue接口,提供了非阻塞的队列操作。它的实现基于链表,支持高并发的读写操作。
下面是一个简单的示例代码,演示如何使用ConcurrentLinkedQueue类实现非阻塞队列:
```
import java.util.concurrent.ConcurrentLinkedQueue;
public class NonBlockingQueue<T> {
private ConcurrentLinkedQueue<T> queue = new ConcurrentLinkedQueue<T>();
public void enqueue(T item) {
queue.add(item);
}
public T dequeue() {
return queue.poll();
}
public boolean isEmpty() {
return queue.isEmpty();
}
public int size() {
return queue.size();
}
}
```
在这个示例中,我们定义了一个NonBlockingQueue类,它包含了enqueue、dequeue、isEmpty和size等方法。enqueue方法用于向队列中添加元素,dequeue方法用于从队列中取出元素,isEmpty方法用于判断队列是否为空,size方法用于获取队列的大小。
在实现中,我们使用了ConcurrentLinkedQueue类来存储队列元素,它提供了线程安全的队列操作,可以保证多个线程同时读写队列时不会发生阻塞。
阅读全文