2011-10-01 95 views
0

我正在使用pthread库进行多线程。内线程功能,我使用睡眠系统调用。这会阻止单个线程还是整个过程。谢谢。睡眠系统调用线程

回答

1

通常,sleep只影响调用线程。真正的,内核托管的线程彼此独立运行。然而,在一个具有“绿色”线程的应用程序中(不是原生的OS;由应用程序本身管理),阻塞的系统调用可能会阻止一切。但是这种破碎是非常罕见的 - 管理绿色线程的软件往往会提供一个完整的运行时环境,包括不通过系统调用即可达到sleep的方式。

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

+0

在我的代码中,线程之间没有同步。每个线程都是分离的。我只是使用睡眠系统调用来遵循分配描述,它指出线程在做一些工作之后应该睡几秒钟 – Rambo