【发布时间】:2013-08-07 13:47:28
【问题描述】:
我了解到一个进程有 running、ready、blocked 和 suspended 状态。线程也有这些状态,除了挂起,因为它存在于进程的地址空间中。
进程在执行阻塞 i/o 或等待事件时大部分时间都会阻塞。
如果一个进程是单线程的,或者它遵循一对多模型,我可以很容易地想象出一个进程会被阻塞,但是如果进程是多线程的,它是如何工作的?
例如:
我在遵循一对一模型的系统中有一个带有两个线程的进程。 一个处理 gui,另一个处理阻塞 i/o。我知道该进程保持响应,因为其他线程处理 i/o。
那么这个过程是否有可能被阻止,或者在这种情况下我应该排除它吗?
我只是进入这些东西,如果我还没有理解一些重要的细节,请原谅我。
【问题讨论】:
-
如果没有更具体的上下文,这将很难回答 - 根据平台、操作系统、系统库、编程语言及其支持的多{线程/处理}模型,可能存在巨大差异(s)...
-
很抱歉,如果我不能更详细地介绍。还有很多我不熟悉的东西。
标签: multithreading process scheduling