共计 1058 个字符,预计需要花费 3 分钟才能阅读完成。
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...