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>
    '''
  • 相关阅读:
    HDU 5640 King's Cake
    HDU 5615 Jam's math problem
    HDU 5610 Baby Ming and Weight lifting
    WHU1604 Play Apple 简单博弈
    HDU 1551 Cable master 二分
    CodeForces659C Tanya and Toys map
    Codeforces 960E 树dp
    gym 101485E 二分匹配
    Codeforces 961E 树状数组,思维
    Codeforces Round #473 (Div. 2) D 数学,贪心 F 线性基,模板
  • 原文地址:https://www.cnblogs.com/Mryang123/p/8886730.html
Copyright © 2011-2022 走看看