此处尝试multiprocessing,joblib,numba对实行for并行的作用
假设需要实现一个双重循环(可设置有返回值或无返回值)
for i in range(100000): t_list = 0 for j in range(10000): t_list = i - j
1、不并行
为方便比较,定义了2个函数,采用了嵌套结构
def ForLoop():
for i in range(100000):
t = ForLoopSimple(i)
def ForLoopSimple(i):
t_list = 0
for j in range(10000):
t_list = i - j
return t_list
# origin (53 sec)
time_start = time.time()
ForLoop()
time_end = time.time()
print("---------------------")
print("origin time:", time_end-time_start)
---------------------
origin time: 56.11203336715698
2、multiprogressing
为multiprogressing单独定义一个脚本,采用5个线程,主要如下
def main():
time_start = time.time()
pool = multiprocessing.Pool(processes=5)
result = pool.map(ForLoopSimple, rang