作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
从维基百科它说:
内核线程是内核调度的“最轻量”单元。 每个进程中至少存在一个内核线程。
我了解到进程是一个容器,它包含内存空间、文件句柄、设备句柄、系统资源等……而线程是真正由内核调度的线程。
那么在单线程应用程序中,那个线程(我相信是主线程)是内核线程吗?
最佳答案
我假设你在谈论这篇文章:
http://en.wikipedia.org/wiki/Kernel_thread
根据那篇文章,在单线程应用程序中,由于根据定义您只有一个线程,因此它必须是内核线程,否则它不会被调度并且不会运行。
如果您的应用程序中有多个线程,那么这将取决于用户模式多线程的实现方式(内核线程、光纤等...)。
重要的是要注意,在执行应用程序代码时,它将是在用户模式下运行的内核线程(除非您进行系统调用)。任何在用户模式下运行时执行 protected 指令的尝试都会导致最终导致进程终止的故障。
所以这里的内核线程不要与主管/特权模式和内核代码混淆。
您可以执行内核代码,但您必须先通过系统调用门。
关于multithreading - 在单线程应用程序中,是否只有一个线程是内核线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17726729/
我是一名优秀的程序员,十分优秀!