博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ArrayBlockingQueue
阅读量:7064 次
发布时间:2019-06-28

本文共 791 字,大约阅读时间需要 2 分钟。

hot3.png

ArrayBlockingQueue 介绍

ArrayBlockingQueue 类实现了BlockingQueue接口。

ArrayBlockingQueue 是有容量限制的,它内部使用数组保存元素,这意味着它无法存储无限量的元素。

它有一定存储数量的上限,当初始化该对象时就决定了该数量的大小,之后就无法改变了。

ArrayBlockingQueue 是以先进先出的顺序来保存元素的。

默认情况下,不保证是这种排序。然而,通过在构造函数将公平性 (fairness) 设置为 true 而构造的队列允许按照 FIFO 顺序访问线程。

 公平性通常会降低吞吐量,但也减少了可变性和避免了“不平衡性”。

初始化

// 参数1:构造容量为1024的队列BlockingQueue queue = new ArrayBlockingQueue(1024);// 参数2:如果为true,则按照FIFO顺序访问插入或移除时受阻塞线程的队列;如果为false,则访问顺序是不确定的。BlockingQueue queue = new ArrayBlockingQueue(1024,true);// 参数3:可将一个已存在的集合对象作为初始化数据。BlockingQueue queue = new ArrayBlockingQueue(1024,true,collection);

注意事项

  1. 它是有界阻塞队列。它是由数组实现的,数组大小在构造函数指定,而且之后无法改变。

  2. 它是线程安全的队列。

  3. 不接受null元素。

  4. 公平性可在构造函数中指定。

  5. 此类及其迭代器实现了Collection 和 Iterator 接口的所有可选方法。

  6. 其容量在构造函数中指定。容量不可以自动扩展,也没有手动扩展接口。

转载于:https://my.oschina.net/kevinair/blog/192487

你可能感兴趣的文章
java压缩 GZIP进行简单压缩,ZIP进行多文件保存
查看>>
unbunt的svn重启动命令
查看>>
Solr笔记二之Solr与Tomcat整合
查看>>
主从nis服务器配置手册
查看>>
linux高级策路由理论
查看>>
DHCP知识点
查看>>
Stimulsoft Reports.Net基础教程(四):创建主从报表②
查看>>
ubuntu14.04安装nginx
查看>>
2014年spark开发者大赛火热进行中!
查看>>
nginx负载均衡配置
查看>>
黑马程序员--WPF学习笔记二-----WPF常用页面布局
查看>>
微信公众号支付PHP-SDK的一个BUG
查看>>
网络 基于TCP协议socket编程
查看>>
现代软件工程讲义 目录
查看>>
Akka2使用探索6(Futures)——实现并发和异步
查看>>
【持续更新】jQuery 实用技巧
查看>>
大象也能起舞,Citrix X1计划让你对笔记本电脑say good bye
查看>>
Nginx 之常见报错问题解决
查看>>
linux 防爆破方法
查看>>
Elasticsearch的使用场景深入详解
查看>>