欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python 进程线程在守护线程进程时的对比

程序员文章站 2022-04-02 11:17:20
1.结论(1)主进程在运行完主进程代码后就结束了(2)主线程在运行完代码后没有结束,等待所有线程结束,才结束线程。from threading import Threadfrom multiprocessing import Processimport timedef task(n): print('开始%s' % n) time.sleep(n) print('结束%s' % n)if __name__ == '__main__': t = Proce...

1.结论
(1)主进程在运行完主进程代码后就结束了
(2)
1)主线程中,要是子线程都为守护线程,那么主线程运行完代码就结束,不等任何线程。
2)要是子线程中,时间最短的线程为守护线程,主线程等全部子线程运行完毕,才会结束。
3)子线程中时间最长的为守护线程,主线程等最短线程运行完毕,主线程结束。

from threading import Thread from multiprocessing import Process import time def task(n): print('开始%s' % n) time.sleep(n) print('结束%s' % n) if __name__ == '__main__': t = Process(target=task, args=(1,)) t2 = Process(target=task, args=(3,)) # t.daemon = True t2.daemon = True t.start() t2.start() print('主') 
from threading import Thread from multiprocessing import Process import time def task(n): print('开始%s' % n) time.sleep(n) print('结束%s' % n) if __name__ == '__main__': t = Thread(target=task, args=(1,)) t2 = Thread(target=task, args=(3,)) # t.daemon = True t2.daemon = True t.start() t2.start() print('主') 
from threading import Thread from multiprocessing import Process import time def task(n): print('开始%s' % n) time.sleep(n) print('结束%s' % n) if __name__ == '__main__': t = Thread(target=task, args=(1,)) t2 = Thread(target=task, args=(3,)) # t.daemon = True t2.daemon = True t.start() t2.start() print('主') '''开始1
开始3
主
结束1''' 

本文地址:https://blog.csdn.net/yinlingjishu/article/details/108262871