zoukankan      html  css  js  c++  java
  • 并发编程---开启进程方式---查看进程pid

    1.开启进程的两种方式

    方式一:

    from multiprocessing import Process
    import time
    
    def task(name):
        print('%s is running' %name)
        time.sleep(3)
        print('%s is done' %name)
    
    if __name__ == '__main__':
        # Process(target=task,kwargs={'name':'子进程1'})
        p = Process(target=task,args=('子进程',))
        p.start() #仅仅只是给操作系统发送一个型号,给我开启一个子进程
    
        print('')
    #运行这个程序就会产生一个父进程,在父进程运行过程当中,发一个系统调用,开启两个进程

    方式二:

    from multiprocessing import Process
    import time
    
    class MyProcess(Process):
        def __init__(self,name):
            super().__init__() # 为了防止父类中还有,有用的方法,所以要重用一下
            self.name = name
    
        def run(self): # 函数名必须用run
            print('%s is running' %self.name)
            time.sleep(3)
            print('%s is done' %self.name)
    
    if __name__ == '__main__':
        p = MyProcess('子进程1')
        p.start() # 默认就掉用Process 下面的run方法
        print('')
    '''
    主进程为什么要等子进程结束在结束呢?
    1.所有的子进程都要进入到僵尸状态
    2.僵尸进程在父进程一直不死的情况下,会占用系统id,这样系统在执行进程的时候就可能启动不启来
    孤儿进程:是子进程没有死,父进程先死了,但是这种进程是无害的。
    '''

    2.查看进程pid

    from multiprocessing import Process
    import time,os
    
    def task():
        print('%s is running,parent id is <%s>' %(os.getpid(),os.getppid()))
        time.sleep(3)
        print('%s is done,parent id is <%s>' %(os.getpid(),os.getppid()))
    
    if __name__ == '__main__':
        p = Process(target=task,)
        p.start()
    
        print('',os.getpid(),os.getppid())
    
    
    #windows查看进程的id号:tasklist | findstr pycharm(进程)
    #linux查看进程的id号:ps aux |grep pycharm(进程)
    '''
    打印结果
    主 1996 13980 #13980是pycharm的id号
    12528 is running,parent id is <1996>
    12528 is done,parent id is <1996>
    '''
  • 相关阅读:
    【Python】练习题
    Markdown 常见用法
    程序员个性注释图案
    Class.getResource和ClassLoader.getResource的区别分析
    spring源码分析(二)
    spring源码分析(一)
    加密、解密、公钥,私钥、Https协议
    二叉查找树、红黑树
    HashMap、ConcurrentHashMap
    springIOC
  • 原文地址:https://www.cnblogs.com/Mryang123/p/8886730.html
Copyright © 2011-2022 走看看