使用多线程可以加快程序运行速度。
遍历占用cpu不高,单线程跑程序占用的CPU很少。
多线程则是CPU占用多,内存占用少了。
【一个实例】:multi_process.py
### multi_process.py from multiprocessing import Pool import os, time, random def long_time_task(name, s): print('Run task %s (%s)...' % (name, os.getpid())) start = time.time() time.sleep(random.random() * 3) end = time.time() print('Task %s runs %0.2f seconds.' % (name, (end - start))) return name if __name__=='__main__': print('Parent process %s.' % os.getpid()) p = Pool(8) gamma = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1] for i in range(10): gamma[i] = p.apply_async(long_time_task, args=(i, 5)) print('Waiting for all subprocesses done...') p.close() p.join() tmp[i] gamma[i]= tmp[i].get() print('All subprocesses done.') print([x.get() for x in gamma])
【Reference】
1. python中的进程、线程(threading、multiprocessing、Queue、subprocess) 这篇写的很详细