Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 用户级线程内核级线程和光纤_Windows_Multithreading_Kernel - Fatal编程技术网

Windows 用户级线程内核级线程和光纤

Windows 用户级线程内核级线程和光纤,windows,multithreading,kernel,Windows,Multithreading,Kernel,我知道光纤在线程的上下文中运行。它们仅为用户级 我知道线程可以是用户级的,也可以是内核级的 在用户级应用程序中创建线程时,它也是用户级的 能否在用户应用程序中创建内核级线程 这些用户级线程也由内核调度 在.NET中调用CreateThread时,内核是如何发挥作用的?CreateThread函数是否需要通过susbsystem dll到达执行程序,并一直到内核,以创建用户级线程?在Windows平台上,用户模式进程(应用程序)中的线程是用户模式线程,而内核模式进程中的线程是内核模式线程。不能在用

我知道光纤在线程的上下文中运行。它们仅为用户级

我知道线程可以是用户级的,也可以是内核级的

在用户级应用程序中创建线程时,它也是用户级的

能否在用户应用程序中创建内核级线程

这些用户级线程也由内核调度


在.NET中调用CreateThread时,内核是如何发挥作用的?CreateThread函数是否需要通过susbsystem dll到达执行程序,并一直到内核,以创建用户级线程?

在Windows平台上,用户模式进程(应用程序)中的线程是用户模式线程,而内核模式进程中的线程是内核模式线程。不能在用户模式进程中创建内核模式线程。在Windows上,内核直接或间接地(通过配置CPU中断的方式)调度所有线程


.Net CreateThread最终使用CreateThread API,该API是从Kernel32.dll导出的。

“在Windows平台上,用户模式进程(应用程序)中的线程是用户模式线程”->否。用户/内核级线程并不意味着要求在哪个级别创建它们。我的意思是说,他们在哪一个层次上被管理。如果通过编译语言(C线程、C++线程、Python线程等)在Windows中构建线程,则内核是线程级的线程,因为内核负责其调度。用户级线程通常在用户级进行管理和调度,内核不知道它们的存在。@Gupta如果没有内核管理/调度线程,您如何在Windows平台上创建线程?您应该使用允许创建用户级线程的库。我不知道Windows上有任何错误。但是,这些库创建用户级线程,而不通知内核。当用户级线程想要进行上下文切换时,库负责进行切换,而不是内核。