从维基百科说:
内核线程是内核调度的“最轻”的单元。每个进程中至少存在一个内核线程。
我了解到,进程是一个容纳内存空间,文件句柄,设备句柄,系统资源等的容器,而线程是内核真正调度的线程。
因此,在单线程应用程序中,一个线程(我相信主线程)是内核线程吗?
我假设您正在谈论这篇文章:http : //en.wikipedia.org/wiki/Kernel_thread
根据该文章,在单线程应用程序中,由于定义上只有一个线程,因此它必须是内核线程,否则它将不会被调度,也将无法运行。
如果您的应用程序中有多个线程,那么这将取决于如何实现用户模式多线程(内核线程,光纤等)。
重要的是要注意,但是在执行应用程序代码时,除非它是系统调用,否则它将是在用户模式下运行的内核线程。在用户模式下运行时,任何试图执行受保护指令的尝试都将导致错误,最终将导致进程终止。
因此,这里的内核线程不要与超级用户/特权模式和内核代码相混淆。
您可以执行内核代码,但必须首先通过系统调用门。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句