code: @SafeVarargs
      public final EventHandlerGroup<T> handleEventsWith(final EventProcessorFactory<T>... eventProcessorFactories)
      {
          final Sequence[] barrierSequences = new Sequence[0];
          return createEventProcessors(barrierSequences, eventProcessorFactories);
      }
docs: <p>Set up custom event processors to handle events from the ring buffer. The Disruptor will
  automatically start these processors when {@link #start()} is called.</p>
  
  <p>This method can be used as the start of a chain. For example if the handler <code>A</code> must
  process events before handler <code>B</code>:</p>
  <pre><code>dw.handleEventsWith(A).then(B);</code></pre>
  
  <p>Since this is the start of the chain, the processor factories will always be passed an empty <code>Sequence</code>
  array, so the factory isn't necessary in this case. This method is provided for consistency with
  {@link EventHandlerGroup#handleEventsWith(EventProcessorFactory...)} and {@link EventHandlerGroup#then(EventProcessorFactory...)}
  which do have barrier sequences to provide.</p>
  
  <p>This call is additive, but generally should only be called once when setting up the Disruptor instance</p>
  
  @param eventProcessorFactories the event processor factories to use to create the event processors that will process events.
  @return a {@link EventHandlerGroup} that can be used to chain dependencies.