让所有线程睡眠linux / unix

时间:2013-11-06 07:47:59

标签: linux unix sleep thread-sleep

我正在linux / unix中编写一个程序,我希望让所有线程都休眠,从其中一个线程调用(当然也包括那个线程)。我该怎么办?

sleep()只睡眠调用进程/线程,我希望所有这些都能睡眠。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

懒惰的解决方案是分叉一个子进程并向父进程发送一个STOP信号,这将暂停父任务。

pid_t apid = fork();
if (apid == 0) { /* Child */
    kill(getppid(), SIGSTOP);
    sleep(60);
    kill(getppid(), SIGCONT);
    exit(0);
} else if (apid > 0) { /* Parent */
    int state;
    waitpid(apid, &state, 0);
} else { /* error */
    perror("fork");
}

它可能不会做你想要的,但这是懒惰的方式。