python 开启进程的两种方法、以及查询子进程与父进程

方法1

先输出主进程,再输出子进程是因为 p.start() 只是给系统发送就绪信号有延时,所以主进程都执行完了,可能子进程才到他开始运行

from multiprocessing import Process  # 创建进程的模块

def task(name):
    print(name)

if __name__ == '__main__':  
    # 开启子进程  参数1:方法名(不要带括号)   参数2:参数(元祖)      返回对象
    p = Process(target=task, args=('子进程1',))
    p.start()  # 只是给操作系统发送了一个就绪信号,并不是执行。操作系统接收信号后安排cpu运行

    print('主进程')

    # 输出:主进程--> 子进程

方法2 - 类的方法

from multiprocessing import Process  # 创建进程的模块

class MyProcess(Process):
    def __init__(self, name):
        super().__init__()
        self.name = name

    def run(self):  # 固定名字run !!!必须用固定名
        print(self.name)

if __name__ == '__main__':  # 必须要这样启动 
    p = MyProcess('子进程1')
    p.start()
    print('主进程')

查看进程ID 与 父进程ID

import os
from multiprocessing import Process

def taks():
    # os.getpid = 取进程id
    # os.getppid =  取父进程id
    print('这里是进程: %sd   父进程ID:%s' % (os.getpid(), os.getppid()))

if __name__ == '__main__':
    p = Process(target=taks)
    p.start()

    print('主进程',os.getpid())

.jion 等待子进程运行完毕

import os
from multiprocessing import Process

class MyProcess(Process):
    def __init__(self, name):
        super().__init__()
        self.name = name

    def run(self):  # 固定名字run !!!
        print(self.name)

if __name__ == '__main__':
    p = MyProcess('子进程1')
    p.start()

    p.join()  # 【主进程等 子进程运行完毕再执行后面程序】
    print('主')

terminate 像操作系统发送干掉进程命令is_alive,不会立即关闭,所以is_alive立刻查看的结果可能还是存活

is_alive 判断进程是否存活

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值