范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Java多线程编程之BlockingQueue(1)

  【死记硬背】
  ArrayBlockingQueue:基于数组的阻塞队列实现,在ArrayBlockingQueue内部,维护了一个定长数组,以便缓存队列中的数据对象,其内部没有实现读写分离,也就意味着生成和消费不能完全并行,长度是需要定义的,可以指定先进先出或者先进后出,也叫有界队列,在很多场合非常适合适用。
  LinkedBlockingQueue:基于链表的阻塞队列,同ArrayBlockingQueue类似,其内部也维持着一个数据缓冲队列,LinkedBlockingQueue之所以能够高效的处理并发数据,是因为其内部实现采用分离锁(读写分离两个锁),从而实现生产者和消费者操作的完全并行运行,它是一个无界队列。
  SynchronousQueue:一种没有缓冲的队列,生产者产生的数据直接会被消费者获取并消费。
  【答案解析】
  ArrayBlockingQueue、LinkedBlockingQueue以及SynchronousQueue的使用代码如下: import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.SynchronousQueue; import java.util.concurrent.TimeUnit;  public class UseQueue {          public static void main(String[] args) throws Exception {                                 /**有界阻塞队列                 ArrayBlockingQueue array = new ArrayBlockingQueue(5);                 array.put("a");                 array.put("b");                 array.add("c");                 array.add("d");                 array.add("e");                 //array.add("f");                 System.out.println(array.offer("f", 3, TimeUnit.SECONDS));                 */                  /**无界阻塞队列                 LinkedBlockingQueue q = new LinkedBlockingQueue();                 q.offer("a");                 q.offer("b");                 q.offer("c");                 q.offer("d");                 q.offer("e");                 q.add("f");                 System.out.println(q.size());                  for (Iterator iterator = q.iterator(); iterator.hasNext();) {                         String string = (String) iterator.next();                         System.out.println(string);                 }                                 List list = new ArrayList();                 System.out.println(q.drainTo(list, 3));                 System.out.println(list.size());                 for (String string : list) {                         System.out.println(string);                 }                 */                  final SynchronousQueue q = new SynchronousQueue();                 Thread t1 = new Thread(new Runnable() {                         @Override                         public void run() {                                 try {                                         System.out.println(q.take());                                 } catch (InterruptedException e) {                                         e.printStackTrace();                                 }                         }                 });                 t1.start();                 Thread t2 = new Thread(new Runnable() {                                                 @Override                         public void run() {                                 q.add("asdasd");                         }                 });                 t2.start();                                } }
  【温馨提示】
  点赞+收藏文章,关注我并私信回复【面试题解析】,即可100%免费领取楼主的所有面试题资料!

不愧是字节跳动技术官,算法精髓全写这本666页笔记里了,服了前言如果是去面软件工程师的职位,刷题我认为是必须的。在我看来刷题就像是高考前的冲刺,有2个好处首先,可以起到巩固算法基础的作用其次,可以帮助自己对某些算法进行总结和整理,达到融会贯基于SSMShiroLayuiEasyui权限管理系统基于SSMShiroLayuiEasyuiEcharts的后台管理系统(maven版)源码获取关注转发之后私信回复源码即可100免费获取到介绍BM致力于更完善,代码注释更丰富,更易超详细的Java弹窗样式及使用教程推荐阅读工作不到一年,做出了100k系统,老板给我升职加薪今天来和大家分享一个Swing程序设计中关于JOptionPane类的使用,该类的作用呢,其实主要就是设置弹窗,所以在这里让人眼前一亮后台管理快速开发框架源码分享先关注,再转发,评论然后私信源码来免费获取项目源码!平台介绍本框架是在jeesite1。x项目基础上,进行了框架重构,改造升级而来,在此特别感谢原作者的贡献!!框架基于Maven构如何用开源组件攒出一个大数据建模平台一食用须知终于又可以名正言顺的发一篇聊天吹水哦不是,是技术杂谈类的文章了,官方有活动?那必须跟上啊!咳那么闲言少叙,下面是食用须知本文并非标题党,将介绍构建一个基于Web界面可操作收藏,Alibaba程序员要求必会的920页TCPIP笔记上图先问自己4个问题TCPIP是什么。TCPIP和HTTP。TCPIP和HTTPS。网络的四层模型我曾经也认为,TCP是一个相当底层的问题,我不需要明白。大多数时候你的确不需要明白基于区块链的价值共享互联网即时通讯应用平台源码免费分享关注转发之后私信回复源码即可免费获取到本项目所有源码基于区块链的价值共享互联网即时通讯应用平台,是一个去中心化的任何人都可以使用的通讯网络,是一款基于区块链的价值共享互联网即时通讯重庆涪陵首富白手起家,从工人逆袭为地产大亨,打造千亿房企重庆涪陵首富白手起家,从工人逆袭为地产大亨,打造千亿房企推荐语涪陵区,是重庆市辖区之一,这里不仅盛产榨菜,同时也是我国风景秀丽的风水宝地。在涪陵,较为受欢迎的名胜景点就有白鹤梁武陵河南固始首富出现,打造海上风电龙头企业,身价92亿河南固始首富出现,打造海上风电龙头企业,身价92亿推荐语固始县,河南省直管县,信阳市代管。位于河南省东南端,豫皖两省交界处,南依大别山,北临淮河,总面积2946平方千米。固始文化底中国最大包租婆出现掌舵重庆地产龙头企业,半年收租47。8亿中国最大包租婆出现打造重庆地产龙头企业,半年收租47。8亿推荐语众所周知,过去20多年来,我国房地产行业无疑是造富能力最强的。在这个庞大的产业中,也诞生了诸如万达王健林恒大许家印碧濮阳第一富豪掌舵河南大型房地产企业,身价125亿濮阳首富出现掌舵河南大型房地产企业,身价125亿推荐语濮阳市,河南省地级市,是国家历史文化名城,有颛顼遗都帝舜故里之称,被中国古都学会命名为中华帝都。除了文化底蕴深厚之外,濮阳市物
收音机,你还在用老式方式听广播吗收音机,你还在用老式方式听广播吗时代在发展,人们的生活方式也在发生着变化,在过去我们如果想要听广播一定是找收音机才能实现这个想法,而如今智能手机的出现让我们每个人身边都有一台微型电云纸创业谈丨作为一个成功的项目,必备的要素有哪些?评判一个创业项目是否是成功的,相信每个人都有自己的一套标准。不过自古以来不论是商业还是军事,都讲究天时地利人和的契合程度。这对于创业来讲仍然有效,不过我们今天要从现在的创业角度去解2021新CP出现,王一博牵手安踏成安踏代言人4月29号,安踏正式官宣王一博成为安踏品牌全球首席代言人,它所穿的安踏冬奥国旗款服装,正是围绕2022冬奥会主题特约打造的。顶流明星王一博牵手安踏为将奥国旗款服装穿成潮牌,同时和安海信TOUCH5月20日震撼来袭音阅星推官王博文李歌洋邀你共同见证全球首款音乐阅读器海信TOUCH将于5月20日震撼来袭,特邀海信TOUCH音阅星推官王博文与你一起遇见更大的视界,与音阅星推官李歌洋一起读别人的故事,阅自己的人生!海信TOUCH音全球首款音乐阅读器海信TOUCH正式发布开启沉浸听读新时代5月20日,海信举办主题为HiTOUCH的新品发布会,正式推出护眼阅读新产品全球首款音乐阅读器海信TOUCH。凭借行业内首搭四通道环境光传感器与瑞声声学合作,联合瑞典Dirac音效10亿原色臻彩护眼幕屏还原真实美景,华为nova9Pro手机十一自由拍在华为nova9系列手机的发布会上,它强大的实力,吸引了众多消费者的目光与期待终于,在首销日当天,我很荣幸地抢到了一台华为nova9Pro,又正好赶上十一小长假,我的国庆旅途就不寂小米10发布一个月,小米6用户依旧不为所动网友调侃雷总,但是电池新生米6重生小编认为现在在这个智能手机普遍的时代,有很多手机都相当地优秀,深受广大用户的喜爱。但是同时也有着一部分人,他们被称为钉子户现在只要上微博转一圈,就能看到很多小米6的投影仪选购这三大误区你都知道吗?看完这篇攻略你就知道怎么选随着时代的发展,虽然电视也在不断地进步发展,完成了传统电视到智能电视的转变,但是电视一直存在的一个问题就是屏幕尺寸越大价格越贵,而且电视也会存在占空间的情况。但是这样的问题,在投影罗斯再遭伤病,膝盖已无力承担高难度打法!玫瑰恐将再度凋零今天活塞客场对阵国王的比赛最终以100106遗憾输掉了比赛,本场比赛罗斯毫无疑问的首发出场,带领队伍在首节就打出来181的开局,玫瑰单节3分1中1登场9分钟就高效砍下9分3篮板2助21!英超战火重燃!争四之战热刺VS切尔西强强对话不知不觉,本赛季英超已经迎来第27轮比赛。到了赛季的中后段,每一场比赛都至关重要,特别是对于那些希望冲进欧冠的球队来说,每一场比赛都是志在夺取3分的决赛。而本轮比赛最受关注的焦点之意大利之光!欧冠最大黑马全队12人进球!热刺多线作战无人可用今日凌晨4点,欧冠18决赛首回合继续进行,欧冠新军亚特兰大主场迎战西甲劲旅瓦伦西亚,开场不久亚特兰大就打破了僵局,最终以4比1大胜对手,首回合抢得先机!上届亚军热刺在缺少队史最佳射