0

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

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

4

1 回答 1

0

懒惰的解决方案是 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");
}

它可能不会完全按照您的意愿行事,但这是一种懒惰的方式。

于 2013-11-06T07:59:55.843 回答