Process的一些用法
Process的join用法
join():阻塞主进程,等待子进程结束以后,再往下执行
from multiprocessing import Process
import time
def task():
print('进程 start')
time.sleep(2)
print('进程 end')
if __name__ == '__main__':
p = Process(target=task)
p.start()
p.join()
print('主进程')
在当前进程的角度查看pid
- 获取当前进程的pid:
os.getpid()
- 获取当前进程的父进程的pid:
os.getppid()
- 获取当前进程的子进程的pid:
子进程对象.pid
守护进程
守护进程本质上也是一个子进程。
主进程的代码执行完毕守护进程直接结束,但是主进程可能还没有结束。
from multiprocessing import Process
import time
def task():
print('守护进程 start')
time.sleep(5)
print('守护进程 end')
if __name__ == '__main__':
p = Process(target=task)
p.daemon = True # 把这个子进程定义为守护进程
p.start()
time.sleep(2)
print('主进程')