【发布时间】:2011-09-21 13:41:08
【问题描述】:
“wait() 系统调用暂停当前进程的执行,直到其子进程之一终止”。 Waitpid 也类似。
我的问题是从一个线程调用 wait() 是否会导致所有其他线程(在同一进程中)也进入睡眠状态?分离线程的行为是否也相同?
【问题讨论】:
“wait() 系统调用暂停当前进程的执行,直到其子进程之一终止”。 Waitpid 也类似。
我的问题是从一个线程调用 wait() 是否会导致所有其他线程(在同一进程中)也进入睡眠状态?分离线程的行为是否也相同?
【问题讨论】:
这只是手册中的一个错误。 wait 挂起调用线程,而不是进程。除非发送SIGSTOP 或一次手动暂停每个线程,否则绝对没有办法暂停整个进程。
【讨论】:
据我所知,从任何线程调用 wait 都会导致与该进程关联的所有线程停止。
但不要让我这么说。最好的办法是对其进行测试。
【讨论】:
应该只停止当前线程。如果您想让人们在查看您的代码时感到不适并给自己带来很多问题,您可以将其用于陪审团操纵的线程同步。不过我不推荐它。
【讨论】: