Guest User

Untitled

a guest
Feb 18th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. import threading
  2. import time
  3. import random
  4. from sys import argv
  5. from queue import Queue
  6.  
  7.  
  8. class T(threading.Thread):
  9. def __init__(self, num, barrier, queue):
  10. self.barrier = barrier
  11. self.num = num
  12. self.queue = queue
  13. threading.Thread.__init__(self)
  14.  
  15. def run(self):
  16. self.barrier.wait()
  17. time.sleep(self.num/100)
  18. self.queue.put(self.num)
  19.  
  20.  
  21. if __name__ == "__main__":
  22. n = int(argv[1])
  23. value_range = range(1, 100)
  24. barrier = threading.Barrier(parties=n)
  25. queue = Queue(n)
  26. nums = [random.choice(value_range) for x in range(n)]
  27. #nums = [random.randint(1, 100) for x in range(n)]
  28. threads = [T(nums[x], barrier, queue) for x in range(n)]
  29. #threads = [T(b, random.choice(value_range), q) for x in range(n)]
  30. for t in threads:
  31. t.start()
  32. results = [queue.get() for x in range(n)]
  33. print("orig.", nums)
  34. print("sorted", results)
  35. print("result", sorted(nums) == results)
Add Comment
Please, Sign In to add comment