gpt4 book ai didi

linux - 关于僵尸进程和线程的问题

转载 作者:IT王子 更新时间:2023-10-29 00:54:15 27 4
gpt4 key购买 nike

自从我阅读了一些关于进程和线程的新主题后,我就一直在想这些问题。如果有人能帮助我,我会很高兴。

1) 如果线程被标记为不可取消,然后进程在临界区内被终止,会发生什么情况?

2) 我们是否有操作系统已知的程序主线程?我的意思是操作系统是否给程序的第一个线程一些有益的权利或其他东西?

3)当我们杀死一个进程,线程没有加入时,它们会变成僵尸吗?

最佳答案

首先,不要杀死或取消线程,让它们杀死自己。如果你从外部杀死一个线程,你永远不知道会留下什么副作用——变量、同步原语的状态等。如果您发现一个线程有必要终止另一个线程,则让有问题的线程检查开关、捕获信号等,并在退出之前清理其状态。

1) 如果您所说的不可取消是指分离的,则与连接的线程相同。如果你盲目地杀死它,你不知道你会留下什么烂摊子。

2) 从应用程序级别的角度来看,主要的事情是,如果主线程 exits() 或 returns() 它将关闭所有其他线程。如果主线程使用 pthread_exit() 自行终止,其余线程将继续。

3) 与进程非常相似,线程将保留一些资源,直到它被回收(加入)或程序结束,除非它以分离方式运行。

RE 注意:线程不共享它们各自有自己的栈。参见 clone()有关线程创建的一些信息。

关于linux - 关于僵尸进程和线程的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3890366/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com