code: static <E> RingBuffer<E> createMultiProducer(Supplier<E> factory,
  			int bufferSize,
  			WaitStrategy waitStrategy, Runnable spinObserver) {
  
  		if (hasUnsafe()) {
  			MultiProducerRingBuffer sequencer = new MultiProducerRingBuffer(bufferSize, waitStrategy, spinObserver);
  
  			return new UnsafeRingBuffer<>(factory, sequencer);
  		}
  		else {
  			throw new IllegalStateException("This JVM does not support sun.misc.Unsafe");
  		}
  	}
docs: Create a new multiple producer RingBuffer with the specified wait strategy.
  <p>See {@code MultiProducerRingBuffer}.
  @param <E> the element type
  @param factory used to create the events within the ring buffer.
  @param bufferSize number of elements to create within the ring buffer.
  @param waitStrategy used to determine how to wait for new elements to become available.
  @param spinObserver the Runnable to call on a spin loop wait
  @return the new RingBuffer instance