【发布时间】:2013-07-01 15:22:50
【问题描述】:
如果这个问题有点过分,我深表歉意,但这对我来说似乎很有趣,我无法从我的研究中找到任何好的答案。我知道操作系统有一个主系统线程来执行诸如管理其他线程之类的任务,但是这在非超线程的单核处理器上究竟是如何工作的?在我看来,不可能将控制权交给应用程序正在使用的另一个线程,因为这会导致系统线程阻塞。但显然这是可能的,那么它究竟是如何工作的呢?我曾想过系统线程将其他线程的工作整合到自己的工作中,但这对我来说似乎是一个可怕的想法。
【问题讨论】:
-
拥有数千个运行线程是很正常的。因此,这当然不是单核处理器独有的。暂停一个线程以允许另一个线程运行的能力是标准操作系统功能。这在任何操作系统设计的介绍性书籍中都有介绍,任何程序员都需要阅读。
-
@SLaks 这是一个有趣的页面,我从中学到了很多东西,谢谢!
-
@HansPassant 我必须检查一下,然后通读一遍。您对在线资源有什么建议吗?我发现这个Code Project Article 看起来很有希望,但其他建议也总是很好。
-
显然我建议你去当地的图书馆或书店看看。或者一门课,在北卡罗来纳州立大学附近应该不难找到
标签: multithreading operating-system processor