这段时间研究了一下消息队列,关于消息队列选型可以参看《消息队列选型》。根据公司业务需要最终选择了RocketMQ,关于RocketMQ的安装应用可以参看之前如下文章。
《RocketMQ Java应用—NormalProducer(普通)模式》
RocketMQ基于Java语言开发,这篇对JDK8中的队列接口和类做下总结,方便以后学习查阅。
我们在开发的时候经常会用到队列的一些基础知识,比如说哪些队列线程安全,哪些非线程安全,哪些会阻塞,哪些先进先出,哪些可以设置初始容量等等。基于此,我们先看下面这张图。
如上图,我们可以从名字总结一些规律,Concurrent开头的就是线程安全的,Array开头的底层是基于数组结构的,Blocking开头的为阻塞队列,实现了Deque接口的为双端队列,SynchronousQueue应该跟锁有些关系吧(事实上确实是同步队列,一种阻塞队列,其中每个 put 必须等待一个 take,反之亦然。同步队列没有任何内部容量,甚至连一个队列的容量都没有)。
只是用的话基于这张图,配合JDK8的API应该差不多可以满足,想要更深入学习的话请查询相关资料,这里不再赘述。谢谢!
关注微信公众号和今日头条,精彩文章持续更新中。。。。。