用户级线程会利用多处理吗?我在这里读到了这样一个答案。但是,目前还不清楚。
What does it mean by "user threads cannot take advantage of multithreading or multiprocessing"?
还有一个答案在这里说,这是可能的
How do user level threads (ULTs) and kernel level threads (KLTs) differ with regards to concurrent execution?
我是否在这里缺少一些重要细节?
最佳答案
通常,user-level threads
不能利用多处理,而kernel-level threads
可以利用它。
这只是意味着我们可以在kernel-level threads
计算机系统上并行运行多个multi-core
。但是,对于user-level threads
则无法做到这一点。
这是可能的,因为kernel-level threads
由Operating System
管理,而user-level threads
由用户管理,这意味着OS实际上仅知道一个user-level thread
(正在执行的一个),即使实际上有多个。
现在,在您的链接中,您提供了以下内容:
Some implementations base their user threads on top of several kernel
threads, to benefit from multi-processor machines (M:N model).
根据我阅读链接后的了解,只有实现特定于的情况下,
user-level threads
才有可能利用multiprocessing
。因此,这基本上就像是与kernel-level thread
关联的core
和与相应user-level thread
关联的kernel-level thread
一样。所以最后,它的
kernel-level threads
毕竟在several cores(OR CPU's)
上并行运行。没有multiprocessing
的任何帮助,我们无法利用kernel
。
关于multithreading - 用户级线程会利用多处理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41647778/