Skip to main content

queue_producer_consumer

📦 Use Queue for Producer-Consumer​

Ruby's standard Queue is thread-safe and ideal for producer-consumer workflows. Producers push items and consumers pop, automatically blocking when empty.

require 'thread'

queue = Queue.new

# Producer
producer = Thread.new do
5.times do |i|
queue << "item_#{i}"
puts "Produced item_#{i}"
end
queue << :done
end

# Consumer
consumer = Thread.new do
loop do
item = queue.pop
break if item == :done
puts "Consumed #{item}"
end
end

producer.join
consumer.join