本文将详细介绍守护线程的知识,并将结合守护进程,进行对比。
通过设置线(进)程的deamon属性,来定义守护线(进)程。守护线(进)程会在主线(进)程退出时,立即退出,因此一个线(进)程一旦被设置成守护线(进)程,我们可以认为它是不重要的。我们这里区分守护线程和守护进程,主要是明确主线程在什么时候退出,而主进程又在什么时候退出。
对主进程而言,由于多个进程间是相互独立的,因此主进程无须等待其它进程的退出,主进程退出就是主进程的代码执行完毕。换句话说,也就是主进程代码执行完毕时,只有守护进程会随着主进程的退出而退出。
对主线程而言,由于多个线程之间共享进程(主线程)的资源,因此需要等待所有非守护线程都执行完毕时,主线程才会退出,此时,守护线程也会随之结束。
一. 守护进程
无论是进程还是线程,都遵循:守护进程(线程)会等待主进程(线程)运行完毕后被销毁。但对主进程和主线程而言,运行完毕的概念是不同的:
- 对主进程来说,运行完毕是指主进程的代码运行完毕;