Sha256: bcbc4c2066428f43c13b93f96c2654d3ad7c8d8378538f996a730c41ed47c44a

Contents?: true

Size: 323 Bytes

Versions: 31

Compression:

Stored size: 323 Bytes

Contents

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

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
stella-0.8.8.001 try/proofs/thread_queue.rb
stella-0.8.7.003 try/proofs/thread_queue.rb
stella-0.8.7.002 tryouts/proofs/thread_queue.rb
stella-0.8.7.001 tryouts/proofs/thread_queue.rb
stella-0.8.6.002 tryouts/proofs/thread_queue.rb
stella-0.8.6.001 tryouts/proofs/thread_queue.rb
stella-0.8.5.002 tryouts/proofs/thread_queue.rb
stella-0.8.5.001 tryouts/proofs/thread_queue.rb
stella-0.8.4.001 tryouts/proofs/thread_queue.rb
stella-0.8.3.002 tryouts/proofs/thread_queue.rb
stella-0.8.3.001 tryouts/proofs/thread_queue.rb
stella-0.8.2.003 tryouts/proofs/thread_queue.rb
stella-0.8.2.002 tryouts/proofs/thread_queue.rb
stella-0.8.2.001 tryouts/proofs/thread_queue.rb
stella-0.8.1.002 tryouts/proofs/thread_queue.rb
stella-0.8.1.001 tryouts/proofs/thread_queue.rb
stella-0.8.0.001 tryouts/proofs/thread_queue.rb
stella-0.8.0.000 tryouts/proofs/thread_queue.rb
stella-0.7.6.007 tryouts/proofs/thread_queue.rb
stella-0.7.6.005 tryouts/proofs/thread_queue.rb