赞
踩
multiprocessing模块
多进程multiprocessing模块的使用与多线程threading模块的方法类似。multiprocessing提供了本地和远程的并发性,有效地通过全局解释锁来使用进程(而不是线程)。由于GIL的存在,在CPU密集型程序中,使用多线程并不能有效地利用多核cpu的优势,因为一个解释器在同一时刻只会有一个线程在执行。所以multiprocessing模块可以充分利用硬件的多处理器来进行工作
from time import sleep,ctime import multiprocessing def super_player(file_,time): for i in range(2): print('Start playing: %s! %s'%(file_,ctime())) sleep(time) lists={'铃儿响叮当.mp3':3,'大头儿子小头爸爸.mp4':5,'舒克和贝塔.mp4':4} threads=[] files=range(len(lists)) for file_ ,time in lists.items(): t=multiprocessing.Process(target=super_player,args=(file_,time)) threads.append(t) if __name__ == '__main__': for t in files: threads[t].start() for t in files: threads[t].join() print('end: %s'%ctime())
运行结果:
Start playing: 铃儿响叮当.mp3! Mon Apr 22 16:49:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。