import concurrent.futures
import time
声明数组列表
num_list=range(1,11)
声明一个计数函数
def count(n):
for i in range(10000):
i+=i
return i*n
声明一个工作函数
def work(x):
result=count(x)
print(‘{}的计算结果是{}’.format(x,result))
声明按照顺序工作的函数
def sequence():
start_time=time.clock()
for i in num_list:
work(i)
print(‘运行时间为{}’.format(time.clock-start_time))
声明多线程工作的方法
def thread_exe():
start_time=time.clock()
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
for i in num_list:
executor.submit(work,i)
print(‘运行时间为{}’.format(time.clock-start_time))
声明多进程工作的方法
def multiprocess_exe():
start_time=time.clock()
with concurrent.futures.ProcessPoolExecutor(max_workers=5) as executor:
for i in num_list:
executor.submit(work,i)
print(‘运行时间为{}’.format(time.clock-start_time))
if name == ‘main‘:
分别运行
sequence()
thread_exe()
multiprocess_exe()
sequence的运行结果
1计算的结果是19999998
2计算的结果是39999996
3计算的结果是59999994
4计算的结果是79999992
5计算的结果是99999990
6计算的结果是119999988
7计算的结果是139999986
8计算的结果是159999984
9计算的结果是179999982
10计算的结果是199999980
计算的时间:4.653966205959382
thread_exe的运行结果
2计算的结果是39999996
4计算的结果是79999992
3计算的结果是59999994
1计算的结果是19999998
5计算的结果是99999990
6计算的结果是119999988
8计算的结果是159999984
7计算的结果是139999986
10计算的结果是199999980
9计算的结果是179999982
计算的时间4.656093410957656
mutiprocessing_exe的运行结果
1计算的结果是19999998
3计算的结果是59999994
4计算的结果是79999992
6计算的结果是119999988
7计算的结果是139999986
8计算的结果是159999984
2计算的结果是39999996
5计算的结果是99999990
9计算的结果是179999982
10计算的结果是199999980
计算的时间1.5563637145214544
多线程处理io密集型
多进程处理 计算密集型