0

我了解到 LMAX 破坏者是一个高性能的线程间消息传递库。但是当我尝试使用它时,我发现事件处理程序使用回调方法来处理数据。

void onEvent(T event,
       long sequence,
       boolean endOfBatch)
         throws java.lang.Exception

当发布者将事件发布到 RingBuffer 时调用

但是如果我不使用回调来获取数据,我会写一段时间(true)来自己获取数据,我该怎么办?

谢谢!

4

1 回答 1

0

您应该编写回调,以便将事件推送到队列中。然后,您可以遍历队列。

Queue<Event> queue = new ArrayBlockingQueue(10);

void onEvent(Event event,
        long sequence,
        boolean endOfBatch)
        throws java.lang.Exception {
    queue.add(event);
}

public void test() {
    for ( Event event : queue ) {
        // Your stuff here.
    }
}
于 2015-01-21T12:23:15.490 回答