| from __future__ import with_statement |
| from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor |
| sqrt_n = int(math.floor(math.sqrt(n))) |
| for i in range(3, sqrt_n + 1, 2): |
| return list(map(is_prime, PRIMES)) |
| def with_process_pool_executor(): |
| with ProcessPoolExecutor(10) as executor: |
| return list(executor.map(is_prime, PRIMES)) |
| def with_thread_pool_executor(): |
| with ThreadPoolExecutor(10) as executor: |
| return list(executor.map(is_prime, PRIMES)) |
| for name, fn in [('sequential', sequential), |
| ('processes', with_process_pool_executor), |
| ('threads', with_thread_pool_executor)]: |
| sys.stdout.write('%s: ' % name.ljust(12)) |
| if fn() != [True] * len(PRIMES): |
| sys.stdout.write('failed\n') |
| sys.stdout.write('%.2f seconds\n' % (time.time() - start)) |
| if __name__ == '__main__': |