ArrayBlockingQueue报红咋回事
时间: 2023-12-15 17:06:15 浏览: 70
java并发之ArrayBlockingQueue详细介绍
根据提供的引用内容,ArrayBlockingQueue是一个基于数组的有界阻塞队列,按FIFO排序。它可以防止资源耗尽问题。当线程池中线程数量达到corePoolSize后,再有新任务进来,则会将任务放入该队列的队尾,等待被调度。如果队列已经是满的,则会执行拒绝策略。如果在使用ArrayBlockingQueue时出现报红的情况,可能是因为没有正确导入相关的包或者没有正确使用该类。需要检查代码中是否正确导入了java.util.concurrent包,以及是否正确使用了ArrayBlockingQueue类的构造函数和方法。
示例代码如下:
```java
import java.util.concurrent.ArrayBlockingQueue;
public class Test {
public static void main(String[] args) {
// 创建一个容量为10的ArrayBlockingQueue
ArrayBlockingQueue<Integer> queue = new ArrayBlockingQueue<>(10);
// 添加元素到队列中
queue.add(1);
queue.add(2);
queue.add(3);
// 从队列中取出元素
int num1 = queue.poll();
int num2 = queue.poll();
int num3 = queue.poll();
// 输出取出的元素
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
}
}
```
阅读全文