搜索:消息队列

java DelayQueue延时队列的应用

原创 2022-07-07 13:39 阅读(582)次
DelayQueue是一个线程安全的(ReentrantLock实现)、无界的(通过grow(int minCapacity)自动扩容,写不阻塞)、阻塞的(take方法会阻塞)、延迟(元素需要实现Delayed接口)队列,加入其中的元素必需实现Delayed接口。当调用put之类的方法加入元素时,会触发接口中的compareTo方法进行排序,也就是说队列中元素的顺序是按到期时间排序的(当然,compareTo方法需要我们自己去实现,如果实现不当,可能导致队头元素是没有过期的,而其他元素可能已经过期了),而非它们进入队列的顺序。排在队列头部的元素是最早到期的,越往后到期时间赿晚。没有过期元素的话...

java阻塞的线程安全的优先级队列PriorityBlockingQueue

原创 2022-07-05 14:52 阅读(1351)次
### 优先级队列PriorityBlockingQueue - PriorityBlockingQueue是一个无界的基于数组的优先级阻塞队列,是线程安全的。 - 数组的默认长度是11,虽然指定了数组的长度,但是可以无限的扩充,直到资源消耗尽为止。 - 每次出队都返回优先级别最高的或者最低的元素。 - 默认情况下元素采用自然顺序升序排序,当然我们也可以通过构造函数来指定Comparator来对元素进行排序。 - PriorityBlockingQueue不能保证同优先级元素的顺序。 代码如下: 用户model: ```java public UserInfo(Int...

LinkedBlockingQueue实现定长队列自动出与读取队列

原创 2021-04-23 16:10 阅读(1374)次
我要实现一个存储请求状态的队列缓存,需要用到LinkedBlockingQueue,实现定长队列自动出队,另外还要实现不出队的情况下读取队列数据。 代码如下: ```java LinkedBlockingQueue queue = new LinkedBlockingQueue(3); queue.offer(1); queue.offer(2); queue.offer(3); boolean offer = queue.offer(4); if(offer == false)...

消息队列apache rocketmq4.2入门(二)

原创 2018-03-09 11:12 阅读(1414)次
上一篇我们讲了apache rocketmq4.2的安装,这是目前最新版本了,我本着要研究他的事务消息,却发现apache官方文档里都没有这个,百度了下好像大家都在说事务消息还没有真开源,好失望,但我下载的4.2的官方示例却有事务消息的示例代码,真不知道官方要干嘛。。好了话不多说,我看看其他功能代码吧,我也是根据官方示例弄下来,这里分享下,直接上代码了,其他不说了:Maven:<!-- rocketmq --> <dependency> <groupId>org.apache.rocketmq</groupId> <ar...

消息队列apache rocketmq4.2入门(一)

原创 2018-03-09 10:56 阅读(1970)次
RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点:    支持严格的消息顺序    支持Topic与Queue两种模式    亿级消息堆积能力    比较友好的分布式特性    同时支持Push与Pull方式消费消息    历经多次天猫双十一海量消息考验下面给大家分享我的入门笔记:可以配置单Master,双(多)Master,Master-Slave三种模式这里我搭建的是双Master模式优点:配置简单,单个Master宕机或重启维护对应用无影响,在磁盘配置为...