1.导入过程包
import multiprocessing
multiprocessing 是一个反对应用与 threading 模块相似的 API 来产生过程的包。 multiprocessing 包同时提供了本地和近程并发操作,通过应用子过程而非线程无效地绕过了 全局解释器锁。 因而,multiprocessing 模块容许程序员充分利用给定机器上的多个处理器。 它在 Unix 和 Windows 上均可运行。
2.创立过程
Process([group [, target [, name [, args [, kwargs]]]]])
group参数未应用,值始终为None
target示意调用对象,即子过程要执行的工作
args示意调用对象的地位参数元组,args=(1,2,’hello’,)
应用multiprocessing.Process创立过程,target示意要执行的函数,能够应用args传入元组必须要用逗号如
args=(‘张三’,)或者用kwarges传入字典须要应用关键字的形式来指定参数,如kwargs={‘name’:’zhangsan’,’age’:18}
#创立过程 sub_process = multiprocessing.Process(target=task)
3.启动过程
#启动过程 sub_process.start()
罕用办法
start()启动子过程实例
join()期待子过程执行完结
terminate()不论工作是否实现 立刻终止
4.最终实现
import multiprocessing import time def dance(): for i in range(5): print("dance...") time.sleep(1) def sing(): for i in range(5): print("sing...") time.sleep(1) # 判断是否是间接执行的模块, 程序入口模块 # 规范python写法,间接执行的模块,须要加上判断是否是主模块的代码 if __name__ == '__main__': #创立 dance_process = multiprocessing.Process(target=dance) sing_process = multiprocessing.Process(target=sing) #启动 dance_process.start() sing_process.start()
输入后果:
dance... sing... dance... sing... dance... sing... dance... sing... dance... sing...