Loop to publish multiple items.
diff --git a/example/example_producer.go b/example/example_producer.go
index 96e18f0..3f00a46 100644
--- a/example/example_producer.go
+++ b/example/example_producer.go
@@ -4,13 +4,17 @@
 
 func publish(writer *disruptor.Writer) {
 	for {
-		sequence := writer.Reserve(1)
+		sequence := writer.Reserve(ItemsToPublish)
+
 		if sequence != disruptor.Gating {
-			// ringBuffer[(sequence-3)&RingMask] = sequence - 3
-			// ringBuffer[(sequence-2)&RingMask] = sequence - 2
-			// ringBuffer[(sequence-1)&RingMask] = sequence - 1
-			ringBuffer[sequence&RingMask] = sequence
+			for lower := sequence - ItemsToPublish; lower < sequence; {
+				lower++
+				ringBuffer[(lower)&RingMask] = lower
+			}
+
 			writer.Commit(sequence)
 		}
 	}
 }
+
+const ItemsToPublish = 4
diff --git a/example/main.go b/example/main.go
index d93130e..5e3b6f4 100644
--- a/example/main.go
+++ b/example/main.go
@@ -28,10 +28,10 @@
 
 		// wildly sporadic latency for single-item publish, e.g. 2 seconds, 65 ms, etc.
 		// faster for 2-3+ items per publish
-		// go consume(reader)
+		go consume(reader)
 
 		// constant time regardless of the number of items
-		go easyConsume(disruptor.NewEasyReader(reader, NewExampleConsumerHandler()))
+		// go easyConsume(disruptor.NewEasyReader(reader, NewExampleConsumerHandler()))
 	}
 
 	return readerCursors