Advertisement
Guest User

Untitled

a guest
Jul 21st, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. from concurrent import futures
  2. import collections
  3. import time
  4.  
  5.  
  6. def job(job_id):
  7. time.sleep(job_id)
  8. return job_id
  9.  
  10.  
  11. def example1():
  12. """
  13. Submits jobs to a ThreadPool
  14. :return:
  15. """
  16. executor = futures.ThreadPoolExecutor(max_workers=32)
  17. results = collections.deque()
  18. for i in range(100):
  19. result = executor.submit(job, i)
  20. results.append(result)
  21.  
  22. print([result.result() for result in results])
  23.  
  24.  
  25. def example2():
  26. """
  27. Submits jobs to a ProcessPool
  28. :return:
  29. """
  30. executor = futures.ProcessPoolExecutor(max_workers=32)
  31. results = collections.deque()
  32. for i in range(100):
  33. result = executor.submit(job, i)
  34. results.append(result)
  35.  
  36. print([result.result() for result in results])
  37.  
  38.  
  39. def example3():
  40. """
  41. Maps jobs to a ThreadPoolExecutor
  42. :return:
  43. """
  44. executor = futures.ThreadPoolExecutor(max_workers=32)
  45. results = executor.map(job, range(100))
  46. print([result.result for result in results])
  47.  
  48.  
  49. def example4():
  50. """
  51. Maps jobs to a ProcessPoolExecutor
  52. :return:
  53. """
  54. executor = futures.ProcessPoolExecutor(max_workers=32)
  55. results = executor.map(job, range(100))
  56. print([result.result for result in results])
  57.  
  58.  
  59. if __name__ == "__main__":
  60. examples = [
  61. "example1",
  62. "example2",
  63. "example3",
  64. "example4",
  65. ]
  66.  
  67. for ex in examples:
  68. start = time.time()
  69. print("Running %s" % ex)
  70. locals()[ex]()
  71. print("%s ran in %f seconds" % (ex, time.time()-start))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement