守护线程和守护进程的理解(笔记)

之前听过守护进程,但是没有听过守护线程。今天查了一些资料简单理解了一下守护线程的概念。

守护线程

线程分为两种类型:
用户线程:我们平常创建的普通线程。
守护线程:用来服务于用户线程的线程,不需要上层逻辑介入

进程在退出之前,会等待所有的用户线程先退出,然后进程才退出。但是进程不会等待守护线程,守护线程这时被认为“不重要”。具体内容和python中守护线程的设置,请参考如下资料:

  • https://segmentfault.com/a/1190000021637034
  • https://blog.csdn.net/u012063703/article/details/51601579
  • https://zhuanlan.zhihu.com/p/28049750

守护进程

因为之前了解守护进程的一点定义,所以看到守护线程,本来的理解是守护线程也能起到“守护”的作用,但实际上并没有。再说说守护进程,守护进程直观的理解,真正的起到了“守护”的作用。
守护进程是一种不受终端输入的影响,也不会被终端的信号所打断的进程。守护进程和后台运行进程也是有所区别的。具体请参考如下资料:

  • https://www.zhihu.com/question/38609004
  • https://blog.csdn.net/Brouce__Lee/article/details/81591424

那么接下来的问题也来了,如果守护进程不受终端信号的控制,那如果想要关闭或者控制守护进程怎么办?
答案是可以通过强制终止的方式来杀掉守护进程。也就是我们通常用的

kill -9 pid

9是信号名称SIGKILL对应的序号,代表强制终止。


版权声明:本文为weixin_38888144原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。