用户线程无法利用多线程或多处理
来源:维基百科
这是否意味着CPU无法同时有效地执行多个用户线程? 这是否意味着CPU无法在两个或多个用户线程之间切换?
例如:有两个用户线程t0和t1。 t0是第一个执行的。 t1只在t0完成或可以切换时才开始执行吗?
PS:这个问题可能看起来不止一个问题,但我想这只是一个问题。
答案 0 :(得分:1)
以下是该页面当前所说的内容:
线程有时在用户空间库中实现,因此称为用户线程。内核不知道它们,因此它们在用户空间中进行管理和调度。一些实现将其用户线程基于多个内核线程,以从多处理器机器(M:N模型)中受益。在本文中,术语“线程”(没有内核或用户限定符)默认引用内核线程。由虚拟机实现的用户线程也称为绿色线程。用户线程通常可以快速创建和管理,但是如果所有关联的内核线程都被阻止,即使有一些用户线程已经准备好运行,也无法利用多线程或多处理并被阻止。
正如您所看到的,在一个段落中,它表明两个用户线程都可以利用多处理器(通过关联的内核线程),而它不能。
我建议您在维基百科页面的谈话页面上提出您的问题,看看他们的作者是否可以启发您的意思......以及他们为什么这么说。
但我认为他们说没有多个内核线程支持的用户(空间)线程 通常无法在多个内核上同时执行。
但是,我会毫不犹豫地说这是用户线程本身所固有的;即,如果没有任何内核帮助,可能利用多个内核的操作系统将无法实现。