Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.49 KB | None | 0 0
  1. print_monitor = Monitor.new
  2. q = SizedQueue.new 100 # change to SizedQueue
  3. producer = Thread.new {
  4. c = 0
  5. 100000.times do
  6. q << c
  7. c += 1
  8. end
  9. }
  10. printer1 = Thread.new {
  11. while true
  12. puts q.size
  13. val = q.shift
  14. print_monitor.synchronize do
  15. puts "Thread 1: #{val}"
  16. end
  17. end
  18. }
  19. printer2 = Thread.new {
  20. while true
  21. puts q.size
  22. val = q.shift
  23. print_monitor.synchronize do
  24. puts "Thread 2: #{val}"
  25. end
  26. end
  27. }
  28. [producer, printer1, printer2].each { |t| t.join }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement