我正在linux / unix中编写一个程序,我希望让所有线程都休眠,从其中一个线程调用(当然也包括那个线程)。我该怎么办?
sleep()
只睡眠调用进程/线程,我希望所有这些都能睡眠。
提前谢谢。
答案 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");
}
它可能不会做你想要的,但这是懒惰的方式。