我了解到 LMAX 破坏者是一个高性能的线程间消息传递库。但是当我尝试使用它时,我发现事件处理程序使用回调方法来处理数据。
void onEvent(T event,
long sequence,
boolean endOfBatch)
throws java.lang.Exception
当发布者将事件发布到 RingBuffer 时调用
但是如果我不使用回调来获取数据,我会写一段时间(true)来自己获取数据,我该怎么办?
谢谢!
您应该编写回调,以便将事件推送到队列中。然后,您可以遍历队列。
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.
}
}