同上一篇一样,在jmap -histo中发现MpscChunkedArrayQueue类的实例比较多,javadoc看了下,其原来是出自JC Tools,https://github.com/JCTools/JCTools。

通过官网,我们可以看到,它针对实际的场景对JDK自带的并发队列做了一些特定的优化,如下:

Java Concurrency Tools for the JVM. This project aims to offer some concurrent data structures currently missing from the JDK:

  • SPSC/MPSC/SPMC/MPMC variations for concurrent queues:

    • SPSC - Single Producer Single Consumer (Wait Free, bounded and unbounded)
    • MPSC - Multi Producer Single Consumer (Lock less, bounded and unbounded)
    • SPMC - Single Producer Multi Consumer (Lock less, bounded)
    • MPMC - Multi Producer Multi Consumer (Lock less, bounded)
  • SPSC/MPSC linked array queues offer a balance between performance, allocation and footprint

  • An expanded queue interface (MessagePassingQueue):

    • relaxedOffer/Peek/Poll: trade off conflated guarantee on full/empty queue state with improved performance.
    • drain/fill: batch read and write methods for increased throughput and reduced contention

不过整体浏览了下,文档较少,benchmark提供了用例但没有看到结果,真用到的时候,可以看下到底性能可以提升多少。有一文章对源码进行了分析(http://blog.csdn.net/youaremoon/article/details/50351929),不过说实话,不知道现在为什么很多人喜欢share源码分析,仅仅只是源码分析,对场景化的适用条件以及原理和实现机制倒是考虑的很少。举个例子,https://www.qcloud.com/community/article/904925001482373849?utm_source=Community&utm_medium=article904925001482373849&utm_campaign=kyzg就是一篇典型的文章,是为了说明看过源码了、还是理解了。通常,个人认为理解如何实现、适用场景及优缺点是同等重要的,否则就只顾赶路、却不关心自己在哪里了。

最新文章

  1. SQLPrompt 7.2发布
  2. RedHat下apache\ftp\mysql 4.0 的安装方法
  3. JQuery Mobile 页面参数传递(转)
  4. ArcMap中的名称冲突问题
  5. jsp分页代码之pageUtil类
  6. [SQL SERVER系列]读书笔记之SQL注入漏洞和SQL调优
  7. 中国大概能用的NTPserver地址
  8. MVC视图中Html.DropDownList()辅助方法的使用
  9. React翻译官网文档之JSX
  10. [js高手之路]设计模式系列课程-组合模式+寄生组合继承实战新闻列表
  11. apache 改变文档根目录www的位置
  12. 数列分块总结——题目总版(hzwer分块九题及其他题目)(分块)
  13. Kali学习笔记12:服务扫描
  14. [原创]K8Cscan插件之存活主机扫描
  15. Python:matplotlib绘制条形图
  16. EventBus结合rxjava2和retrofit2网络获取
  17. webkit技术内幕读书笔记 (二、三)
  18. git版本管理工具-git的概述
  19. vue项目的搭建
  20. 每天一个linux命令:cat 命令

热门文章

  1. poj2492 A Bug's Life【并查集】
  2. 如何写好PPT
  3. SVN cleanup 报错,清除svn的工作队列
  4. 11.20 HTML及CSS
  5. UOJ #146. 【NOIP2015】信息传递 连通分量 tarjan模板题
  6. Oracle故障排查之oracle解决锁表问题
  7. 【PyQt5-Qt Designer】读取txt文件在打印
  8. django的contenttype表
  9. 前端 HTML body标签相关内容 常用标签 换行标签 br
  10. go for cryptocurrency