我正在尝试使用clone()实现一个线程创建/运行函数。我打算使用CLONE_STOPPED标志来创建子线程,但让它等待开始执行,直到我将SIGCONT发送给创建的子线程。怀疑当我将SIGCONT发送给子节点并且子节点恢复执行时,我将会遇到父线程的状态。父线程是否会被挂起?或继续运行?。我们如何配置它??
提前谢谢!
答案 0 :(得分:2)
父母将继续可以运行。它实际上是与子节点同时运行还是交错运行取决于您拥有多少处理器核心以及调度程序如何决定运行它们;你应该假设它同时运行。
CLONE_STOPPED
标志已被弃用多年,实际上是在最新的内核合并窗口中删除的。您不应该使用它 - 使用线程同步原语(可能构建在futex()
上)。