对于python中daemon(守护进程)用法的疑问。
在多个进程同时运行时,底层是否是由于互相抢占资源,从而导致了图1的结果。而加上了daemon后,'work'进程一旦被另一进程print(‘主线进程结束’)抢占,就会停止运行,造成了图2结果?daemon称为守护进程,意思就是为了保护本进程,一旦被"抢占 "就停止运行,从而起了守护作用? 不知道理解的对不对。
可不可以举一些实际开发中daemon用法的例子帮助理解一下?
import multiprocessing, time
def work():
for i in range(10):
print(f'工作中....{i}')
time.sleep(0.3)
if __name__ == '__main__':
p1 = multiprocessing.Process(target=work)
time.sleep(1)
p1.start()
time.sleep(1)
print('主进程结束')
图1的结果是
import multiprocessing, time
def work():
for i in range(10):
print(f'工作中....{i}')
time.sleep(0.3)
if __name__ == '__main__':
p1 = multiprocessing.Process(target=work)
p1.daemon = True
p1.start()
time.sleep(1)
print('主进程结束')
图2的结果是