multithreading - 如果在同一进程中杀死线程A,线程B会发生什么?

标签 multithreading kernel kill

Suppose a process spawns a thread A and this thread further spawns a new thread B, now suppose thread A is killed then what will happen to the thread B.



我认为,如果这些是KLT,那么肯定不会杀死线程B。对于ULT,线程B也不应该发生任何事情

最佳答案

没有。在 fork 过程中发生的事情是,线程B首先获得对线程A的页表的引用(虚拟内存引用)。一旦这些页面表从A或B进行了任何更改,就会创建一个副本(针对每个页面)并将其分配给这两个页面。在这种情况下,B将只继承所有页表并做自己的事情。

关于multithreading - 如果在同一进程中杀死线程A,线程B会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10801480/

相关文章:

c++ - 如何检测远程机器上的内核 panic ?

c# - 在 c# 中线程函数不起作用

.net - 是否可以杀死 BackgroundWorker 的线程?

linux - 如何在 CentOS 6 上启用 KSM?

unix - 为什么unix中kill -9命令中的数字是9?

process - 在 Windows 和 Linux 中如何在进程终止时收到通知?

C# Windows 窗体被任务管理器杀死......有没有办法运行关机功能?

c# - TPL 数据流 block 在 UI 线程上运行

multithreading - powershell中的线程如何工作?

c - 在 Linux 中调试一个简单的字符驱动程序在 device_create() 上失败