【发布时间】:2010-07-13 20:57:25
【问题描述】:
这可能是一个简单的问题,但我找不到明确的答案。我在 c 代码中有多个线程,其中一个使用 select 等待 n 秒。我的问题是它会阻塞整个进程 n 秒(如 usleep)还是 select 只阻塞调用线程(更像是 nanosleep)。 感谢您的回答。
【问题讨论】:
-
睡眠不会阻塞整个过程,或者至少在我的经验中不会。
-
我认为确实如此......这是来自 usleep 的手册页“描述 usleep() 函数将调用进程的执行暂停(至少)usec 微秒。”而如果你看一下 nanosleep 的手册页,它会清楚地提到它阻塞了调用线程
-
你是措辞的受害者。所有的睡眠/阻塞函数都会阻塞当前线程。没有任何函数能够让多线程的整个进程进入睡眠状态。
-
@Dummy ..是的,在昨天运行了测试代码之后,我现在确实意识到了这一点。即使是手册页有时也会产生误导。无论如何,感谢大家为我解决问题
标签: c linux select-function