2012-03-22 110 views
7

我想了解Disruptor framework。誰能給我一個可以用Java程序語言在主要方法中運行的helloworld例子?Disruptor helloworld示例

+0

參見[LMAX干擾物的簡單和實際的例子代碼] [1]。 [1]:http://stackoverflow.com/questions/9168602/the-simplest-and-actual-example-code-of-lmax-disruptor – Heri 2012-03-23 00:05:05

回答

3

這裏還有一個從我的身邊。我嘗試了一個使用開源Lmax庫的破壞者例子。
我認爲使用lmax disruptor(而不是破壞者的內部)的理念是創建消費者的消息分派器和註冊事件監聽器。

您創建一個Disruptor並指定消息類型。

Disruptor<Message> disruptor = new Disruptor<Message>(Message.EVENT_FACTORY, 2048, exec);` 

您創建一個處理程序

final EventHandler<Message> handler = new EventHandler<Message>() { 
     // event will eventually be recycled by the Disruptor after it wraps 
     public void onEvent(final Message event, final long sequence, final boolean endOfBatch) throws Exception { 
      Integer value = event.getMsg(); 
      if(value % 10000 == 0){ 
       System.out.println("ValueEvent: " + value + " Sequence: " + sequence); 
       double timeINnanos = (System.nanoTime()-startTime); 
       double timetaken = (timeINnanos/1e9); 
       System.out.println("Time Taken till now in sec " + timetaken); 
      } 
     } 
    }; 

註冊處理與破壞者

  disruptor.handleEventsWith(handler); 

啓動干擾物,並通過返回的RingBuffer您製作

  RingBuffer<Message> ringBuffer = disruptor.start(); 
     Producer producer = new Producer(ringBuffer); 

全部代碼可以在這裏 Github link

相關問題