例如,进程正在使用块模式侦听某个端口,因此如果I / O未就绪,则该进程将被阻止。
while (true)
{
msg = recv(port, BLOCKING_FLAG); // blocks here
cout<<msg<<endl;
}
我们也知道我们可以让一个过程睡眠:sleep(1000)
。
我的问题是:如果这样的进程被阻止,我可以说该进程被暂停了吗?该过程是否会从CPU换出?关于sleep
的相同问题。
答案 0 :(得分:3)
“休眠” - 通常表示该线程处于显式sleep(...)
调用中。
“暂停” - 有时以通用方式使用,这意味着线程正在等待...某事。其他时候,“Suspended”意味着某些其他线程或进程显式暂停它(例如,用于调试目的),并且进程/线程将无法再次运行,直到它被明确恢复。 / p>
“被阻止” - 是三者中最通用的。通常它只是意味着进程/线程正在等待某事。有时它意味着线程/进程正在等待的是I / O操作。