zoukankan      html  css  js  c++  java
  • 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

     

     

  • 相关阅读:
    C# 请求API(一次登陆,多次请求)
    C# WebAPI 跨域问题Cors
    正则表达式校验YYYYMMDD
    C# 通过Smtp 完成系统发送邮件
    C# Log4Net 记录项目日志
    C# 自定义Attribute
    C#泛型
    SQL从数据库导出数据到EXCEL换行的问题解决方法
    C# 在MVC 中把DataTable中的数据导出到Excel
    闹心的CSDN
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/11029260.html
Copyright © 2011-2022 走看看