这个Python例子 简单形象的演示了单线程和Map实现多线程的时间做了一个对比

import time
from multiprocessing import Pool
import requests
def decorator_timer(old_function):
def new_function(*arg, **dict_arg):
t1 = time.time()
result = old_function(*arg, **dict_arg)
t2 = time.time()
print(time:, t2 – t1)
return result
return new_function
def visit_once(i, address = http://www.cnblogs.com):
r = requests.get(address)
return r.status_code
@decorator_timer
def single_thread(f, counts):
result = map(f, range(counts))
return list(result)
@decorator_timer
def multiple_thread(f, counts, process_number = 10):
p = Pool(process_number)
return p.map(f, range(counts))
if __name__ == __main__:
TOTAL = 100
print(single)
print(single_thread(visit_once, TOTAL))
print(multle)
print(multiple_thread(visit_once, TOTAL))
启动10个进程, 并行处理100个网站下载请求, 单个下载进程描述为visit_once() 多线程用了map方法. 时间大为缩短.
引自 《从Python开始学编程》 这本入门书写的不错, 可惜作者英年早逝. 可见心理健康多么重要, 尤其在当前疫情下.
原文链接:,转发请注明来源!

发表评论