java无锁消费者框架_无锁并行框架多生产者多消费者模型
生活随笔
收集整理的這篇文章主要介紹了
java无锁消费者框架_无锁并行框架多生产者多消费者模型
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
下面看一下多生產(chǎn)多消費者的模式,下面的代碼是模擬100個生產(chǎn)者,每個生產(chǎn)者生產(chǎn)100個事件,然后有3個消費者,同時進行消費,共消費1W個事件,
下面看一下代碼:
這邊new出了3個消費者,并把消費者數(shù)組放入workPool這個消息隊列中,然后在RingBuffer中獲取事件,進行消費:
看一下event類:Order
下面看一下生產(chǎn)者:
把數(shù)據(jù)生產(chǎn)完成后,放入ringBuffer,然后進行事件發(fā)布
在看一下消費者:
通過一個原子類進行消費的記錄查看哪個消費者消費了多少個事件,
查看一下打印的結(jié)果:
看一下最后的打印結(jié)果:
3個消費者,總共消費1000個事件,中間的協(xié)調(diào)通過SequenceBarrier進行消費協(xié)調(diào);這種實現(xiàn)模式就是多消費者多生產(chǎn)者。需要注意的是RingBuffer和disruptor使用的范圍,RingBuffer適合使用在不復(fù)雜消費模型上面,disruptor適合使用在復(fù)雜消費模型上,例如,菱形,順序,六邊形等。
總結(jié)
以上是生活随笔為你收集整理的java无锁消费者框架_无锁并行框架多生产者多消费者模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 类加载 双亲委派_Java类加
- 下一篇: oracle存储过程 取时间格式,Ora