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

     

     

  • 相关阅读:
    Ubuntu 14.04 配置iptables防火墙
    转 微软Sysinternals Suite工具13年12月版下载
    转详解Zoosk千万用户实时通信背后的开源技术
    Where is Silverlight now?
    A glance at C# vNext
    silverlight 进行本地串口调用的一种可行的解决方法 之silverlight端代码
    silverlight 进行本地串口调用的一种可行的解决方法
    silverlight 中javascript 代码与托管代码的互调用 以及一些思考
    使用cglib动态创建javabean
    数据库同步核心代码
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/11029260.html
Copyright © 2011-2022 走看看