我正在使用pthread库进行多线程处理。在线程函数内部,我使用sleep系统调用。这会阻塞单个线程还是整个进程。感谢。
答案 0 :(得分:1)
通常,sleep
仅影响调用线程。真正的内核管理线程彼此独立运行。但是,在具有“绿色”线程的应用程序中(不是操作系统本机;由应用程序本身管理),阻止的系统调用可能会阻止所有内容。但是这种破坏是相当罕见的 - 管理绿色线程的软件倾向于提供整个运行时环境,包括sleep
无需求助于系统调用的方式。
更好的问题是......你真的需要sleep
吗?基于时间的同步往往会导致竞争条件和脆弱的应用程序。线程有一种方法可以等待并互相触发;这会导致更好的决定论。