
Untitled
By: a guest on
Sep 18th, 2012 | syntax:
None | size: 0.88 KB | hits: 15 | expires: Never
# Playing around with the `concurrent.futures` module
# Usage:
# python concurrent_test.py [number_of_requests=10]
#
from __future__ import print_function
from concurrent.futures import ThreadPoolExecutor
import requests
import time
import sys
def request(__):
requests.get('http://www.google.com')
def pmap(fn, lst):
executor = ThreadPoolExecutor(max_workers=8)
return executor.map(fn, lst)
def timeit(fn, number=1, mapper=map):
start = time.time()
list(mapper(fn, range(number))) # Force evaluation of generator
return time.time() - start
if __name__ == '__main__':
number_of_requests = int(sys.argv[1]) if len(sys.argv) > 1 else 10
print('Series ({} requests):'.format(number_of_requests),
timeit(request, number_of_requests))
print('Parallel ({} requests):'.format(number_of_requests),
timeit(request, number_of_requests, mapper=pmap))