关于python:Python多任务编程多进程的使用

6次阅读

共计 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...
正文完
 0