Java Queue队列如何进行容量限制

发布时间:2025-04-30 20:19:44 作者:小樊
来源:亿速云 阅读:114

在Java中,可以使用java.util.concurrent包中的ArrayBlockingQueueLinkedBlockingQueue类来实现具有容量限制的队列。这两个类都允许你在创建队列时指定最大容量。

以下是如何使用ArrayBlockingQueueLinkedBlockingQueue创建具有容量限制的队列的示例:

  1. 使用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();
        }
    }
}
  1. 使用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()方法将阻塞,直到队列中有可用元素。这样可以确保队列的容量不会超过指定的限制。

推荐阅读:
  1. Redis中的分布式Java队列的应用
  2. 学java必须知道的那些queue

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:服务器运维Decryption如何保障数据安全

下一篇:服务器运维Decryption解密需要关注哪些法律问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》