Type:
Class
This class provides a way to synchronize communication between threads.
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | require 'thread' queue = Queue. new producer = Thread . new do 5 .times do |i| sleep rand(i) # simulate expense queue << i puts "#{i} produced" end end consumer = Thread . new do 5 .times do |i| value = queue.pop sleep rand(i/ 2 ) # simulate expense puts "consumed #{value}" end end consumer.join |