您当前的位置: 首页 >  Python

IT之一小佬

暂无认证

  • 0浏览

    0关注

    1192博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

python多进程的使用(导包、创建子进程、启动子进程)

IT之一小佬 发布时间:2021-03-19 16:01:15 ,浏览量:0

1 导入进程包
#导入进程包
import multiprocessing
2. Process进程类的说明

Process([group [, target [, name [, args [, kwargs]]]]])

  • group:指定进程组,目前只能使用None  【不用设置】
  • target:执行的目标任务名  【函数名】
  • name:进程名字  【可以不用设置,设置了也没有用】
  • args:以元组方式给执行任务传参  【函数没有参数时就不用传参】
  • kwargs:以字典方式给执行任务传参  【函数没有参数时就不用传参】

Process创建的实例对象的常用方法:

  • start():启动子进程实例(创建子进程)
  • join():等待子进程执行结束
  • terminate():不管任务是否完成,立即终止子进程

Process创建的实例对象的常用属性:

  • name:当前进程的别名,默认为Process-N,N为从1开始递增的整数
3. 多进程完成多任务的代码
import multiprocessing
import time


# 跳舞任务
def dance():
    for i in range(5):
        print("跳舞中...")
        time.sleep(0.2)


# 唱歌任务
def sing():
    for i in range(5):
        print("唱歌中...")
        time.sleep(0.2)

if __name__ == '__main__':
    # 创建跳舞的子进程
    # group: 表示进程组,目前只能使用None  【设置别的就会报错】
    # target: 表示执行的目标任务名(函数名、方法名)
    # name: 进程名称, 默认是Process-1, .....
    dance_process = multiprocessing.Process(target=dance, name="myprocess1")  # dance不能写成dance(),否则程序 变为主进程运行了
    sing_process = multiprocessing.Process(target=sing)

    # 启动子进程执行对应的任务
    dance_process.start()  # 进程执行是无序的,具体哪个进程先执行是由操作系统调度决定
    sing_process.start()  # 进程执行是无序的,具体哪个进程先执行是由操作系统调度决定

执行结果:

4. 小结
  1. 导入进程包
    • import multiprocessing
  2. 创建子进程并指定执行的任务
    • sub_process = multiprocessing.Process (target=任务名)
  3. 启动进程执行任务
    • sub_process.start()
关注
打赏
1665675218
查看更多评论
立即登录/注册

微信扫码登录

0.0413s