您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在Java中,可以使用java.util.concurrent
包中的ArrayBlockingQueue
或LinkedBlockingQueue
类来实现具有容量限制的队列。这两个类都允许你在创建队列时指定最大容量。
以下是如何使用ArrayBlockingQueue
和LinkedBlockingQueue
创建具有容量限制的队列的示例:
ArrayBlockingQueue
:import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
public class Main {
public static void main(String[] args) {
int capacity = 5; // 设置队列容量
BlockingQueue<Integer> queue = new ArrayBlockingQueue<>(capacity);
// 向队列中添加元素
try {
queue.put(1);
queue.put(2);
queue.put(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 从队列中移除并返回元素
try {
System.out.println(queue.take());
System.out.println(queue.take());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
LinkedBlockingQueue
:import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.BlockingQueue;
public class Main {
public static void main(String[] args) {
int capacity = 5; // 设置队列容量
BlockingQueue<Integer> queue = new LinkedBlockingQueue<>(capacity);
// 向队列中添加元素
try {
queue.put(1);
queue.put(2);
queue.put(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 从队列中移除并返回元素
try {
System.out.println(queue.take());
System.out.println(queue.take());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
在这两个示例中,我们创建了一个容量为5的队列。当队列满时,put()
方法将阻塞,直到队列中有空闲空间。当队列为空时,take()
方法将阻塞,直到队列中有可用元素。这样可以确保队列的容量不会超过指定的限制。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。