【发布时间】:2012-05-29 14:47:18
【问题描述】:
假设一个进程产生了一个线程A,并且这个线程进一步产生了一个新的线程B,现在假设线程A被杀死,那么线程B会发生什么。
我认为如果这些是 KLT,那么线程 B 被杀死肯定不会发生任何事情。对于 ULT,线程 B 也不应该发生任何事情
【问题讨论】:
-
线程 B 将继续执行。线程以火和忘记的方式工作。
标签: multithreading kernel kill
假设一个进程产生了一个线程A,并且这个线程进一步产生了一个新的线程B,现在假设线程A被杀死,那么线程B会发生什么。
我认为如果这些是 KLT,那么线程 B 被杀死肯定不会发生任何事情。对于 ULT,线程 B 也不应该发生任何事情
【问题讨论】:
标签: multithreading kernel kill
什么都没有。在分叉过程中发生的情况是线程 B 通过获取对线程 A 的页表的引用(虚拟内存引用)开始。一旦从 A 或 B 对这些页表进行任何更改,就会创建一个副本(为每个页面)并提供给它们两者。在这种情况下,B 只会继承所有的页表并做自己的事情。
【讨论】: