目录
Process的其它小用法(了解的知识点)
下面的知识点是了解的知识点,但是也要会用,分别是pid和ppid的查看方式
pid的查看方式
方式一: 直接输出查看
from multiprocessing import Process
import time
def task():
print('子进程开启')
time.sleep(2000)
print('子进程关闭')
if __name__ == '__main__':
p = Process(target=task)
p.start()
print(p.pid)#查看pid的代码一定要写在start()之后
print('主')
这个代码里面就是直接输出p.pid的值就知道pid的值了,为什么我把睡眠调了两千秒?因为我要保证这个子进程这段时间内不会结束,然后我利用这个pid号在终端里面查看pid对应的进程
结果如图
结果说明了我在终端里面通过pid就能找到对应的进程。
方式二多调用几个模块(os)和(current_Process)
代码如下
#其它查看pid的方法
import time,os#这里多调用了os模块
from multiprocessing import Process, current_process#这里还调用了current_Process这个方法
def task():
print('子进程开启')
print('在子进程中查看自己的pid', current_process().pid)#在子进程中查看自己的pid的另一种方法
print('在子进程中查看自己的pid', os.getpid())#这是另一种查看pid的方式
time.sleep(10)
print('子进程关闭')
if __name__ == '__main__':
p = Process(target=task)
p.start()
print('在主进程中查看子进程的pid', p.pid) # 查看pid的代码一定要写在start()之后
print('主')
结果如下
这两个方法也是可以查看的
父进程的pid值如何查看呢?
在子进程里查看父进程的pid值需要用到另一个方法也就是getppid()
代码如下
#查看父进程pid的方法
import time,os#这里多调用了os模块
from multiprocessing import Process
def task():
print('子进程开启')
print('在子进程中查看父进程的pid', os.getppid())#这里查看父进程的pid,使用的就是getppid()的方法
time.sleep(10)
print('子进程关闭')
if __name__ == '__main__':
p = Process(target=task)
p.start()
print('在主进程中查看子进程的pid', p.pid) # 查看pid的代码一定要写在start()之后
print('主')
然后结果如下
同时也存在一个pid就是主进程的父进程的pid,那么子进程、主进程以及主进程的父进程它们三个之间的关系就类似孙子、儿子、爷爷的关系。
如何查看主进程的父进程的pid呢?就是在主进程里面使用getppid()
# 查找主进程的父进程
import time, os # 这里多调用了os模块
from multiprocessing import Process
def task():
print('子进程开启')
print('在子进程中查看父进程的pid', os.getppid()) # 这里查看父进程的pid,使用的就是getppid()的方法
print('在子进程里面查看子进程的pid', os.getpid() )
time.sleep(1000)
print('子进程关闭')
if __name__ == '__main__':
p = Process(target=task)
p.start()
# 这里查看主进程的父进程
print('查看主进程的父进程的pid', os.getppid())
print('主')
结果如图
然后终端的情况
大概方式
"""
os.getpid()#获取当前进程的pid
os.getppid()#获取当前进程的父进程的pid
pid#获取当前进程的子进程pid
"""
这里总结一下子进程、主进程、主进程的父进程三者的关系以及如何诞生的
主进程:是启动其它进程的进程,通常叫父进程,主要功能负责创建、管理和操控子进程。
子进程:是主进程创建的新进程。用于执行特定的任务或操作
主进程的父进程:是启动主进程的进程,通常情况它就是操作系统本身
工作流程:主进程的父进程启动主进程,主进程此时调用多进程库(如现在的multiprocessing)来创建一个或多个子进程。子进程被创建成功后就会继承主进程的代码、数据以及资源(和类与类之间的继承思路基本一致),同时它的执行与其它子进程是独立的
可以这么理解就是先有你爷(主进程的父进程)创造了你的父亲(主进程)然后再由你父亲创建了你(子进程)。这么一说就能理清了
标签:__,知识点,26,查看,10,pid,print,进程,os From: https://www.cnblogs.com/slzjb/p/17790152.html