我正在 linux/unix 中编写一个程序,我想让所有线程休眠,从其中一个线程调用(当然也包括那个线程)。我该怎么做?
sleep()
只休眠调用进程/线程,我希望所有这些都休眠。提前致谢。
我正在 linux/unix 中编写一个程序,我想让所有线程休眠,从其中一个线程调用(当然也包括那个线程)。我该怎么做?
sleep()
只休眠调用进程/线程,我希望所有这些都休眠。提前致谢。
懒惰的解决方案是 fork 一个子进程并向父进程发送一个 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");
}
它可能不会完全按照您的意愿行事,但这是一种懒惰的方式。