Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Sep 18th, 2012  |  syntax: None  |  size: 0.88 KB  |  hits: 15  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. # Playing around with the `concurrent.futures` module
  2. # Usage:
  3. #   python concurrent_test.py [number_of_requests=10]
  4. #
  5. from __future__ import print_function
  6. from concurrent.futures import ThreadPoolExecutor
  7. import requests
  8. import time
  9. import sys
  10.  
  11. def request(__):
  12.     requests.get('http://www.google.com')
  13.  
  14. def pmap(fn, lst):
  15.     executor = ThreadPoolExecutor(max_workers=8)
  16.     return executor.map(fn, lst)
  17.  
  18. def timeit(fn, number=1, mapper=map):
  19.     start = time.time()
  20.     list(mapper(fn, range(number))) # Force evaluation of generator
  21.     return time.time() - start
  22.  
  23. if __name__ == '__main__':
  24.     number_of_requests = int(sys.argv[1]) if len(sys.argv) > 1 else 10
  25.     print('Series ({} requests):'.format(number_of_requests),
  26.           timeit(request, number_of_requests))
  27.     print('Parallel ({} requests):'.format(number_of_requests),
  28.           timeit(request, number_of_requests, mapper=pmap))