gpt4 book ai didi

multithreading - 在单线程应用程序中,是否只有一个线程是内核线程?

转载 作者:行者123 更新时间:2023-12-01 03:55:24 25 4
gpt4 key购买 nike

从维基百科它说:

内核线程是内核调度的“最轻量”单元。 每个进程中至少存在一个内核线程。

我了解到进程是一个容器,它包含内存空间、文件句柄、设备句柄、系统资源等……而线程是真正由内核调度的线程。

那么在单线程应用程序中,那个线程(我相信是主线程)是内核线程吗?

最佳答案

我假设你在谈论这篇文章:
http://en.wikipedia.org/wiki/Kernel_thread

根据那篇文章,在单线程应用程序中,由于根据定义您只有一个线程,因此它必须是内核线程,否则它不会被调度并且不会运行。

如果您的应用程序中有多个线程,那么这将取决于用户模式多线程的实现方式(内核线程、光纤等...)。

重要的是要注意,在执行应用程序代码时,它将是在用户模式下运行的内核线程(除非您进行系统调用)。任何在用户模式下运行时执行 protected 指令的尝试都会导致最终导致进程终止的故障。

所以这里的内核线程不要与主管/特权模式和内核代码混淆。

您可以执行内核代码,但您必须先通过系统调用门。

关于multithreading - 在单线程应用程序中,是否只有一个线程是内核线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17726729/

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