• python 并发编程 多进程 Process对象的其他属性方法 terminate与is_alive name pid 函数


    进程对象的其他方法一: terminate与is_alive

     

    is_alive()  立刻查看的子进程结果 是否存活

    from multiprocessing import Process
    import time
    import os
    
    def task(name):
    
    
        print("%s is running" % (name))
        time.sleep(3)
        print("%s is done" % (name))
    
    
    if __name__ == "__main__":
    
        p = Process(target=task,args=("子进程",))
        p.start()
        # 查看的子进程结果是否存活
        print(p.is_alive())
        p.join()
    
        # 查看的子进程结果是否存活
        print(p.is_alive())
        print("",)
    
    
    '''
    True 子进程存活
    子进程 is running
    子进程 is done
    False 子进程不存活
    主
    '''

    terminate() 关闭子进程,这种也是给操作系统发送信号和start 一样

    子进程还活着

    from multiprocessing import Process
    import time
    import os
    
    def task(name):
    
    
        print("%s is running" % (name))
        time.sleep(3)
        print("%s is done" % (name))
    
    
    if __name__ == "__main__":
    
        p = Process(target=task,args=("子进程",))
        p.start()
    
        # 关闭子进程 给操作系统发送信号
        p.terminate()
        print(p.is_alive())
        p.join()
    
        print("",)
    
    '''
    True 子进程还活着
    主
    '''

    关闭子进程,把内存空间回收,是操作系统做的,但是什么时候关闭进程的时间就不知道了

    terminate() 只是发送信号

    解决:需要time.sleep() 让程序睡的时间长点

    信号发出后,需要操作系统反应一段时间

    from multiprocessing import Process
    import time
    import os
    
    def task(name):
    
    
        print("%s is running" % (name))
        time.sleep(3)
        print("%s is done" % (name))
    
    
    if __name__ == "__main__":
    
        p = Process(target=task,args=("子进程",))
        p.start()
    
        # 关闭子进程 给操作系统发送信号
        p.terminate()
        time.sleep(3)
        print(p.is_alive())
        p.join()
    
        print("",)
    
    '''
    False
    主
    '''

    pid 查看子进程pid 

    p.pid

     name 查看子进程名字

    p.name

    不设置进程名字 默认会给子进程 设置名字 Process-1

     

     

  • 相关阅读:
    第一章-实例7-猴子吃桃问题
    第一章-实例6-判断是否为闰年
    第一章-实例3-计算变量所占字节数
    IDEA学习笔记
    spring boot学习概要(尚硅谷)
    JSP动态WEB开发技术--第一章
    学习前端的准备任务
    cmd优化
    软件测试基础概念
    软件工程理论
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/11029260.html
Copyright © 2020-2023  润新知