域名代理商网站,长武网站建设,怎么在公众平台上添加wordpress,中国室内设计联盟网阻塞队列 (BlockingQueue)是Java util.concurrent包下重要的数据结构#xff0c;BlockingQueue提供了线程安全的队列访问方式#xff1a;当阻塞队列进行插入数据时#xff0c;如果队列已满#xff0c;线程将会阻塞等待直到队列非满#xff1b;从阻塞队列取数据时#xff…阻塞队列 (BlockingQueue)是Java util.concurrent包下重要的数据结构BlockingQueue提供了线程安全的队列访问方式当阻塞队列进行插入数据时如果队列已满线程将会阻塞等待直到队列非满从阻塞队列取数据时如果队列已空线程将会阻塞等待直到队列非空。并发包下很多高级同步类的实现都是基于BlockingQueue实现的。对于许多线程问题可以通过使用一个或多个队列以优雅且安全的方式将其形式化。使用队列可以安全地从一个线程向另一个线程传递数据。例如银行转账程序转账线程将转账指令对象插入一个队列中而不是直接访问银行对象。另一个线程从队列中取出指令执行转账。只有该线程可以访问该银行对象的内部。因此就不需要同步了。当试图向队列添加元素而队列已满或是想从队列中移出元素而队列为空时阻塞队列导致线程阻塞。工作者线程可以周期性地将中间结果存储到阻塞队列中。其他的工作者线程移出中间结果并进一步加以修改。队列会自动的平衡负载。在相邻的线程存在快慢的情况下会进行平衡。Java中的阻塞队列java.util.concurrent包提供了几种不同形式的阻塞队列如数组阻塞队列ArrayBlockingQueue、链表阻塞队列LinkedBlockingQueue、优先级阻塞队列PriorityBlockingQueue和延时队列DelayQueue等下面简单介绍一下这几个阻塞队列数组阻塞队列ArrayBlockingQueue是一个由数组支持的有界阻塞队列内部维持着一个定长的数据缓冲队列该队列由数组构成此队列按照先进先出FIFO的原则对元素进行排序在构造时需要给定容量。ArrayBlockingQueue内部还保存着两个整形变量分别标识着队列的头部和尾部在数组中的位置。对于数组阻塞队列可以选择是否需要公平性所谓公平访问队列是指阻塞的所有生产者线程或消费者线程当队列可用时可以按照阻塞的先后顺序访问队列即先阻塞的生产者线程可以先往队列里插入元素先阻塞的消费者线程可以先从队列里获取元素。通常公平性会使你在性能上付出代价只有在的确非常需要的时候再使用它。“我们相信人人都可以成为一个IT大神现在开始选择一条阳光大道助你入门学习的路上不再迷茫。这里是北京尚学堂初学者转行到IT行业的聚集地。