class Event {
// ...
}
class EventProcessor implements EventHandler<Event> {
// ...
}
public class DisruptorExample {
public static void main(String[] args) {
Disruptor<Event> disruptor = new Disruptor<>(Event::new, bufferSize, executor);
disruptor.handleEventsWith(new EventProcessor());
disruptor.start();
RingBuffer<Event> ringBuffer = disruptor.getRingBuffer();
EventProducer eventProducer = new EventProducer(ringBuffer);
Executor executor = Executors.newFixedThreadPool(consumerThreadCount);
Consumer[] consumers = new Consumer[consumerThreadCount];
for (int i = 0; i < consumerThreadCount; i++) {
consumers[i] = new Consumer(eventProcessor);
executor.execute(consumers[i]);
}
while (true) {
eventProducer.publishEvent();
}
}
}