进程操作

import os,time
from multiprocessing import Process


def c_p_f():
    print('子进程运行。。。')
    while True:
        print('2-pid', os.getpid())
        time.sleep(1)
    # print('子进程调用os.name', os.name)


def main():
    # 获得当前进程进程号
    print('主进程的进程号:', os.getpid())
    # 穿件子进程
    child_pro1 = Process(target=c_p_f, name='cp1')
    # 开启进程
    child_pro1.start()
    # 实例获得实例进程号
    print('实例获得实例进程号:', child_pro1.pid)
    # 调用name
    print('实例获得实例name', child_pro1.name)
    # print(os.ter)#没有终止进程的方法
    # os.isa#没有判断进程是否存活的方法
    # os.join#没有

    # time.sleep(5)
    # print('阻塞进程。。。')
    # 实力阻塞进程
    # child_pro1.join()
    print(child_pro1.is_alive())
    time.sleep(5)
    print('终止进程')
    # 实例终止该Process实例的进程【1】
    child_pro1.terminate()
    # 实力判断是否还在
    # 调用休眠函数
    time.sleep(1)
    print(child_pro1.is_alive())


if __name__ == '__main__':
    main()

【1】.#terminate,isalive方法一起使用时中间要加一个时间延迟
程序运行太快,可能某些值没来得及修改,因此给一个缓存时间,使isisalive的值能够修改
【2】. join 方法在那个方法中使用阻塞那个进程
        使用join并不是说该进程会终止,而是说join下边的代码必须要等到调用 join的进程运行完才会执行,否则不执行而join后边的代码则是属于该
        函数对应的进程,因此会被阻塞
        若join旁边的代码不注释,则子进程不会终止。因为子进程是一个一直循环的进程,不会终止,后边代码也不会执行
    3.os没有终止、阻塞、开始的方法
    4.os.name指的是当前进程的名字,而obj.name则指的其他,二者不对等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值