睡眠系统调用线程

时间:2011-10-01 22:30:36

标签: unix pthreads sleep

我正在使用pthread库进行多线程处理。在线程函数内部,我使用sleep系统调用。这会阻塞单个线程还是整个进程。感谢。

1 个答案:

答案 0 :(得分:1)

通常,sleep仅影响调用线程。真正的内核管理线程彼此独立运行。但是,在具有“绿色”线程的应用程序中(不是操作系统本机;由应用程序本身管理),阻止的系统调用可能会阻止所有内容。但是这种破坏是相当罕见的 - 管理绿色线程的软件倾向于提供整个运行时环境,包括sleep无需求助于系统调用的方式。

更好的问题是......你真的需要sleep吗?基于时间的同步往往会导致竞争条件和脆弱的应用程序。线程有一种方法可以等待并互相触发;这会导致更好的决定论。