首页 > 其他分享 >并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue使用场景总结

并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue使用场景总结

时间:2022-12-27 19:07:11浏览次数:45  
标签:ConcurrentLinkedQueue 消费者 队列 LinkedBlockingqueue LinkedBlockingQueue 阻塞 生产者


适用阻塞队列的好处:多线程操作共同的队列时不需要额外的同步,另外就是队列会自动平衡负载,即那边(生产与消费两边)处理快了就会被阻塞掉,从而减少两边的处理速度差距。
当许多线程共享访问一个公共 collection 时,ConcurrentLinkedQueue 是一个恰当的选择。


LinkedBlockingQueue 多用于任务队列


ConcurrentLinkedQueue  多用于消息队列



多个生产者,对于LBQ性能还算可以接受;但是多个消费者就不行了mainLoop需要一个timeout的机制,否则空转,cpu会飙升的。LBQ正好提供了timeout的接口,更方便使用
如果CLQ,那么我需要收到处理sleep


单生产者,单消费者  用 LinkedBlockingqueue



多生产者,单消费者   用 LinkedBlockingqueue



单生产者 ,多消费者   用 ConcurrentLinkedQueue



多生产者 ,多消费者   用 ConcurrentLinkedQueue

标签:ConcurrentLinkedQueue,消费者,队列,LinkedBlockingqueue,LinkedBlockingQueue,阻塞,生产者
From: https://blog.51cto.com/u_4176761/5973325

相关文章

  • 3 栈和队列
    栈:只允许在一端进行插入或删除操作的线性表操作特性:后进先出(LIFO)顺序栈共享栈链栈基本运算:初始化、判栈空、进栈、出栈、读栈顶元素 队列:只允许在表的一端进行......
  • AQS抽象队列同步器
    AbstractQueuedSynchronizer抽象的队列同步器AQS是volatile+CAS机制实现的锁模板,保证了代码的同步性和可见性。AQS定义了一套多线程访问共享资源的同步器框架,封装了线程......
  • 根据身高重建队列
    假设有打乱顺序的一群人站成一个队列,数组people表示队列中一些人的属性(不一定按顺序)。每个people[i]=[hi,ki]表示第i个人的身高为hi,前面正好有ki个身高大于......
  • 消息队列
    消息队列就是一些消息的列表。用户可以在消息队列中添加消息和读取消息等。从这点上看,消息队列具有一定的FIFO特性,但是它可以实现消息的随机查询,比FIFO具有更大的优势。同......
  • Windows服务器【由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作】
    原文:Windows服务器【由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作】问题调查-奋斗的大橙子-博客园(cnblogs.com)因为我的服务器上也遇到了这个问题,经查......
  • 优先队列(std_priority_queue)
    title:优先队列(std::priority_queue)date:2022-11-1715:50:12tags:算法本文章遵守知识共享协议CC-BY-NC-SA,转载时须在文章的任一位置附上原文链接和作者署名(ric......
  • 数据结构第二节——队列
    二、数据结构第二节——队列和学习栈的思路一样,首先我们来用数组的方式实现队列。借此帮助我们更好的理解“队列”的构成。例一代码源-107#include<bits/stdc++.h......
  • 数据结构28-优先级队列_实现
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width......
  • LinkedBlockingQueue
    ​​https://www.jianshu.com/p/cc2281b1a6bc​​​继承关系图    /***节点类,用于存储数据*/staticclassNode<E>{Eitem;Node<E>ne......
  • SpringBoot2.x系列教程64--SpringBoot整合消息队列之RabbitMQ安装及环境变量配置
    SpringBoot2.x系列教程64--SpringBoot整合消息队列之RabbitMQ安装及环境变量配置作者:一一哥一.准备安装包Erlang-->​​http://www.erlang.org/downloads​​RabbitMQ-->​......