原因:斐波拉切算法
ProcessPoolExecutor: 进程池map的用法
# coding=utf-8
import logging
from concurrent.futures import ProcessPoolExecutor
import time
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [*] %(processName)s %(message)s"
)
def fib (n):
if n < 3:
return 1
return fib(n - 1) + fib(n - 2)
if __name__ == '__main__':
start = time.time()
executor = ProcessPoolExecutor(max_workers=4)
# 异步提交任务------------------------------------------------------------
futures = executor.map(fib, range(3, 35))
for future in futures:
logging.info(future)
executor.shutdown(True)
logging.info(time.time() - start)
输出:
2019-10-07 21:08:19,147 [*] MainProcess 2
2019-10-07 21:08:19,149 [*] MainProcess 3
2019-10-07 21:08:19,150 [*] MainProcess 5
2019-10-07 21:08:19,153 [*] MainProcess 8
2019-10-07 21:08:19,153 [*] MainProcess 13
2019-10-07 21:08:19,161 [*] MainProcess 21
2019-10-07 21:08:19,161 [*] MainProcess 34
2019-10-07 21:08:19,161 [*] MainProcess 55
2019-10-07 21:08:19,162 [*] MainProcess 89
2019-10-07 21:08:19,162 [*] MainProcess 144
2019-10-07 21:08:19,162 [*] MainProcess 233
2019-10-07 21:08:19,162 [*] MainProcess 377
2019-10-07 21:08:19,162 [*] MainProcess 610
2019-10-07 21:08:19,162 [*] MainProcess 987
2019-10-07 21:08:19,162 [*] MainProcess 1597
2019-10-07 21:08:19,162 [*] MainProcess 2584
2019-10-07 21:08:19,162 [*] MainProcess 4181
2019-10-07 21:08:19,162 [*] MainProcess 6765
2019-10-07 21:08:19,162 [*] MainProcess 10946
2019-10-07 21:08:19,173 [*] MainProcess 17711
2019-10-07 21:08:19,173 [*] MainProcess 28657
2019-10-07 21:08:19,203 [*] MainProcess 46368
2019-10-07 21:08:19,207 [*] MainProcess 75025
2019-10-07 21:08:19,248 [*] MainProcess 121393
2019-10-07 21:08:19,293 [*] MainProcess 196418
2019-10-07 21:08:19,391 [*] MainProcess 317811
2019-10-07 21:08:19,573 [*] MainProcess 514229
2019-10-07 21:08:19,812 [*] MainProcess 832040
2019-10-07 21:08:20,164 [*] MainProcess 1346269
2019-10-07 21:08:20,639 [*] MainProcess 2178309
2019-10-07 21:08:21,261 [*] MainProcess 3524578
2019-10-07 21:08:21,890 [*] MainProcess 5702887
2019-10-07 21:08:21,954 [*] MainProcess 3.179666757583618
ThreadPoolExecutor:线程池 map的用法
# coding=utf-8
import logging
from concurrent.futures import ThreadPoolExecutor
import time
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [*] %(threadName)s %(message)s"
)
def fib (n):
if n < 3:
return 1
return fib(n - 1) + fib(n - 2)
if __name__ == '__main__':
start = time.time()
executor = ThreadPoolExecutor(max_workers=4)
# 异步提交任务------------------------------------------------------------
futures = executor.map(fib, range(3, 35))
for future in futures:
logging.info(future)
executor.shutdown(True)
logging.info(time.time() - start)
输出:
2019-10-07 21:12:15,525 [*] MainThread 2
2019-10-07 21:12:15,525 [*] MainThread 3
2019-10-07 21:12:15,525 [*] MainThread 5
2019-10-07 21:12:15,525 [*] MainThread 8
2019-10-07 21:12:15,610 [*] MainThread 13
2019-10-07 21:12:15,641 [*] MainThread 21
2019-10-07 21:12:15,641 [*] MainThread 34
2019-10-07 21:12:15,641 [*] MainThread 55
2019-10-07 21:12:15,642 [*] MainThread 89
2019-10-07 21:12:15,642 [*] MainThread 144
2019-10-07 21:12:15,642 [*] MainThread 233
2019-10-07 21:12:15,642 [*] MainThread 377
2019-10-07 21:12:15,642 [*] MainThread 610
2019-10-07 21:12:15,642 [*] MainThread 987
2019-10-07 21:12:15,642 [*] MainThread 1597
2019-10-07 21:12:15,642 [*] MainThread 2584
2019-10-07 21:12:15,642 [*] MainThread 4181
2019-10-07 21:12:15,642 [*] MainThread 6765
2019-10-07 21:12:15,642 [*] MainThread 10946
2019-10-07 21:12:15,642 [*] MainThread 17711
2019-10-07 21:12:15,643 [*] MainThread 28657
2019-10-07 21:12:15,643 [*] MainThread 46368
2019-10-07 21:12:15,643 [*] MainThread 75025
2019-10-07 21:12:15,826 [*] MainThread 121393
2019-10-07 21:12:15,826 [*] MainThread 196418
2019-10-07 21:12:15,964 [*] MainThread 317811
2019-10-07 21:12:16,249 [*] MainThread 514229
2019-10-07 21:12:16,708 [*] MainThread 832040
2019-10-07 21:12:16,992 [*] MainThread 1346269
2019-10-07 21:12:18,253 [*] MainThread 2178309
2019-10-07 21:12:18,979 [*] MainThread 3524578
2019-10-07 21:12:19,611 [*] MainThread 5702887
2019-10-07 21:12:19,611 [*] MainThread 4.085493087768555
转载:https://blog.csdn.net/mixintu/article/details/102328562
查看评论