python作为一个简单的脚本语言在工作中会经常用到,但奈何执行大量重复性任务时单线程效率低下,这时可以通过多线程并行执行大大提高代码执行效率。
Python3多核并行执行完整示例:(可以复制粘贴到IDLE运行一下)
import threading, time from queue import Queue def basic_worker(queue): while True: item = queue.get() print(str(item)+"\r\n") queue.task_done() def basic(): ts = time.time() queue = Queue() for i in range(3): #创建线程 t = threading.Thread(target=basic_worker,args=(queue,)) t.daemon = True t.start() for item in range(100): #创建任务队例 queue.put(item) queue.join() print('Took {}'.format(time.time() - ts)) #执行结束,输出执行时长 if __name__ == '__main__': basic()
并行计算主要是通过下面这8行代码来实现的:
queue = Queue() #初始化一个队例 for i in range(3): #创建线程 t = threading.Thread(target=basic_worker,args=(queue,)) t.daemon = True t.start() for item in range(100): #创建任务队例 queue.put(item) queue.join()
上面的代码创建了3个线程(具体线程数量可根据任务复杂度及机器配置进行调整),并通过queue.put(item)
写入任务队例及所需参数,最后通过queue.join()
方法告诉程序queue
写入完毕开始执行队例。
记得将basic_worker()
方法内的代码替换为你所需要执行的任务代码即可。