守护进程
- 子进程转换为守护进程
- 主进程的代码结束,子进程的代码也应该接收, 这个事情有守护进程来做
- 守护进程会随着主进程的代码执行完毕而结束, 而不是随着主进程的接收而结束(子进程不一定结束)
from multiprocessing import Process
import time
def func():
while True:
time.sleep(0.5)
print('still here')
def func2():
print('in func 2 start')
time.sleep(8)
print('in func 2 finished')
if __name__ == '__main__':
p = Process(target=func)
p.daemon = True #必须在start之前设置daemon=True,设置子进程为守护进程
p.start()
Process(target=func2).start()
i = 0
while i<5:
print('我是socket server')
time.sleep(1)
i += 1
is-alive()判断进程是否还存活, terminate结束一个进程
- 结束一个进程不是立刻生效,需要一个操作系统响应的过程
from multiprocessing import Process
import time
def func():
while True:
time.sleep(0.5)
print('still here')
def func2():
print('in func 2 start')
time.sleep(8)
print('in func 2 finished')
if __name__ == '__main__':
p = Process(target=func)
p.daemon = True #必须在start之前设置daemon=True,设置子进程为守护进程
p.start()
p2 = Process(target=func2)
p2.start()
p2.terminate()#结束一个子进程
print(p2.is_alive())#判断当前进程是否活着
print(p2.name) #打印当前进程的名字
time.sleep(2)
print(p2.is_alive())