当前位置: 首页 > news >正文

阿里巴巴国际站app手机版网站建设软件

阿里巴巴国际站app,手机版网站建设软件,企业网站 源码 开源,公司注册资金认缴和实缴区别1.什么是阻塞队列 我们知道#xff0c;PriorityQueue、LinkedList这些都是非阻塞队列。在我们使用非阻塞队列的时候有一个很大问题#xff0c;它不会对当前线程产生阻塞#xff0c;那么在面对类似消费者-生产者的模型时#xff0c;就必须额外地实现同步策略以及线程间…1.什么是阻塞队列       我们知道PriorityQueue、LinkedList这些都是非阻塞队列。在我们使用非阻塞队列的时候有一个很大问题它不会对当前线程产生阻塞那么在面对类似消费者-生产者的模型时就必须额外地实现同步策略以及线程间唤醒策略这个实现起来就非常麻烦。但是有了阻塞队列就不一样了它会对当前线程产生阻塞比如一个线程从一个空的阻塞队列中取元素此时线程会被阻塞直到阻塞队列中有了元素。当队列中有元素后被阻塞的线程会自动被唤醒不需要我们编写代码去唤醒。这样提供了极大的方便性。 2.阻塞队列的种类         阻塞队列本质上就是队列它主要有一下几种 ArrayBlockingQueue基于数组实现的阻塞队列先进先出队列有界队列。在创建时必须制定容量大小。并可以指定公平性与非公平性默认情况下是非公平的即不保证等待时间最长的队列最优先能够访问队列。LinkedBlockingQueue基于链表实现的阻塞队列先进先出队列有界队列。在创建时如果不指定容量大小则默认大小为Integer.MAX_VALUE。PriorityBlockingQueue按照元素的优先级对元素进行排序按照优先级顺序出队。并且该阻塞队列为无界阻塞队列即容量没有上限源码中它没有容器满的信号标志。DelayQueue基于PriorityQueue的延时阻塞队列无界队列。DelayQueue中的元素只有当其指定的延迟时间到了才能够从队列中获取到该元素。因为DelayQueue是一个无界队列所以往队列中插入数据的操作永远不会被阻塞而只有获取数据的操作才会被阻塞。SynchronousQueue一个不存储元素的阻塞队列。LinkedTransferQueue一个由链表结构组成的无界阻塞队列。LinkedBlockingDeque一个由链表结构组成的双向阻塞队列。3.阻塞队列中的几个主要方法        put方法用来向队尾存入元素如果队列满则等待  take方法用来从队首取元素如果队列为空则等待  offer方法用来向队尾存入元素如果队列满则等待一定的时间当时间期限达到时如果还没有插入成功则返回false否则返回true  poll方法用来从队首取元素如果队列空则等待一定的时间当时间期限达到时如果取到则返回null否则返回取得的元素4.使用以LinkedBlockingQueue为例   import java.util.concurrent.LinkedBlockingQueue;public class BlockingQueueDemo {int size 10;LinkedBlockingQueueInteger queue new LinkedBlockingQueue(size);public static void main(String[] args) {BlockingQueueDemo bqd new BlockingQueueDemo();Consumer c bqd.new Consumer();Productor p bqd.new Productor();c.setName(消费者);p.setName(生产者);c.start();p.start();}class Consumer extends Thread {Overridepublic void run() {consume();}private void consume() {while (true) {try {queue.take();} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() 消费了一个物品还有 queue.size() 个物品);}}}class Productor extends Thread {Overridepublic void run() {product();}private void product() {while (true) {try {queue.put(1);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() 生产了一个物品现有 queue.size() 个物品);}}} }  转载于:https://www.cnblogs.com/ericz2j/p/10283533.html
http://www.zqtcl.cn/news/539296/

相关文章:

  • 做网站需求文档深圳站建在边境
  • 网站建设法规浙江建设信息港证书查询
  • 影视作品网站开发与设计网站建设教程简笔画
  • 自己可以给公司做网站吗网站建设 用ftp上传文件
  • 电子商务网站开发与管理网站建设的设备
  • 网站建设项目公司沈阳网站关键字优化
  • 可以做淘宝联盟的免费网站优质国外网站
  • 石家庄营销型网站建设公司服装公司网站源码
  • 网站开发的软硬件需求做网站盘锦
  • 创意网站建设排行榜python和php哪个做网站
  • 开锁做网站怎么样榆林网站开发公司
  • 松原市建设局网站苏州网站建设-中国互联
  • 标书制作教程视频网站福田祥菱v1单排
  • 点网站出图片怎么做能看人与动物做的网站
  • 免费开源建站系统源码wordpress公共函数在哪里
  • 西昌市建设工程管理局网站模块化网站开发
  • 无限看片的视频大全免费下载上海网络优化方法
  • 物流公司做网站注重什么问题中国建设银行征信中心网站
  • 教务处网站建设专业做鞋子的网站吗
  • 梦幻创意网站建设成都做网站设计哪家便宜
  • 织梦网站栏目修改教程丝绸之路网站建设意义
  • 如何知道一个网站是谁做的北京装饰公司前十名
  • 杭州网站建设哪个平台好visualstudio 做网站
  • 广州站是哪个站h5建站系统
  • 网站首页网址应该有对应的域名南京高端模板建站
  • 自己做的网站竞价优化怎么做网站流量赚钱吗
  • 人力资源网站建设mip网站模板
  • 太原市住房和城乡建设部网站网站 备案 换空间
  • 怎么做网站备份网站运营数据周报表怎么做
  • 度更新网站做详情页网站