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() 方法内的代码替换为你所需要执行的任务代码即可。

最后修改:2023 年 11 月 24 日
如果觉得我的文章对你有用,请随意赞赏