Advertisement
Guest User

Untitled

a guest
Jun 15th, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. import multiprocessing
  2. import threading
  3. from time import time
  4.  
  5. def fibonacci(n, id, value):
  6. a, b = 0, 1
  7. for _ in range(1, n):
  8. a, b = b, a + b
  9. value = b
  10.  
  11. def processes(size, spawn):
  12.  
  13. start_time = time()
  14. jobs = []
  15. for i in range(0, spawn):
  16. value = 0
  17. process = multiprocessing.Process(target=fibonacci,
  18. args=(size, i, value))
  19. jobs.append(process)
  20.  
  21. for j in jobs:
  22. j.start()
  23.  
  24. for j in jobs:
  25. j.join()
  26.  
  27. elapsed_time = time() - start_time
  28. cps = int(size // elapsed_time)
  29.  
  30. print(
  31. "{} processes: {} calculations per second.".format(spawn, cps)
  32. )
  33.  
  34. def threads(size, spawn):
  35.  
  36. start_time = time()
  37. jobs = []
  38. for i in range(0, spawn):
  39. value = 0
  40. thread = threading.Thread(target=fibonacci(size, i, value))
  41. jobs.append(thread)
  42.  
  43. for j in jobs:
  44. j.start()
  45.  
  46. for j in jobs:
  47. j.join()
  48.  
  49. elapsed_time = time() - start_time
  50. cps = int(size // elapsed_time)
  51.  
  52. print(
  53. "{} threads: {} calculations per second.".format(spawn, cps)
  54. )
  55.  
  56. if __name__ == "__main__":
  57. size = 100000
  58. spawn = 20
  59.  
  60. processes(size, spawn)
  61. threads(size, spawn)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement