fork download
  1. import random
  2. import threading
  3.  
  4. NUM_VALUES = 10
  5. MAX = 100
  6.  
  7. def main(data, mutex):
  8. for i in range(NUM_VALUES):
  9. threading.Thread(None, generate_value, None, (data,mutex)).start()
  10. threading.Thread(None, print_values, None, (data,mutex)).start()
  11.  
  12. def generate_value(data, mutex):
  13. mutex.acquire()
  14. data.append(int(random.random()*MAX))
  15. mutex.release()
  16.  
  17. def print_values(data, mutex):
  18. mutex.acquire()
  19. while len(data):
  20. num = min(data)
  21. data.remove(num)
  22. print num
  23. mutex.release()
  24.  
  25. threading.Thread(None, main, None, ([],threading.Lock())).start()
Success #stdin #stdout 0.04s 35464KB
stdin
Standard input is empty
stdout
15
15
22
31
37
42
48
69
83
89