public DisruptorExecutor(int threadCount, int bufferSize, WaitStrategy waitStrategy) { ringBuffer = RingBuffer.createMultiProducer(new EventFactory<RContainer>() { @Override public RContainer newInstance() { return new RContainer(); } }, bufferSize, waitStrategy); SequenceBarrier sequenceBarrier = ringBuffer.newBarrier(); Sequence workSequence = new Sequence(-1); workProcessors = new WorkProcessor[threadCount]; for (int i = 0 ; i < threadCount ; i++) { workProcessors[i] = new WorkProcessor<RContainer>(ringBuffer, sequenceBarrier, handler, new IgnoreExceptionHandler(), workSequence); } workExec = Executors.newFixedThreadPool(workProcessors.length, new ThreadFactory() { public Thread newThread(Runnable r) { Thread t = new Thread(r); t.setDaemon(true); return t; } }); for (WorkProcessor p : workProcessors) workExec.execute(p); }