1. 程式人生 > >Disruptor Wizard已死,Disruptor Wizard永存!

Disruptor Wizard已死,Disruptor Wizard永存!

Disruptor Wizard(上一篇中提到的DSL元件)目前已經正式併入Disruptor的程式碼樹當中。既然.net移植版包含了Wizard風格的語法很久了,並且看起來還挺受歡迎,所以為什麼還要讓人們非得搞兩個jar而不是一個?

我跟隨Disruptor在術語命名上的變動做出了相應的更新。以前的Customer(消費者),現在叫EventProcessor(事件處理器)和EventHandler(事件控制代碼)。這樣的命名更好的說明了實際上的情況:消費者事實上可以向事件新增附加值。另外,ProducerBarrier(生產者屏障)被合併到Ring Buffer一起,並且Ring Buffer Entry(條目)被改名為Event(事件)。新的命名更貼切了,因為實際上圍繞Disruptor的程式設計模型大部分時候都是基於事件的。

除了以下兩點,Wizard API與以往並沒有太大的不同:

  • consumeWith方法改名為handleEventsWith
  • getProducerBarrier方法被替換成了一個返回值為ring buffer的start方法。這就不會混淆地認為getProducerBarrier方法也被用作觸發事件處理器執行緒的啟動。
  • 現在的方法命名清楚地表示了該方法的其它作用。