当信号到达时线程是否继续执行?

Do threads continue executing when a signal arrives?

我正在用 C 语言编写一个多线程程序,其中 main() 会更改某些信号的行为,然后生成更多线程。问题是:其他线程是在信号到达时继续执行,还是在处理完信号后暂停并恢复执行?

谢谢

do the other threads continue executing when a signal arrives

在 Linux 他们这样做是因为信号只传递给一个线程。除非信号是 SIGSTOP,它会停止一个进程的所有线程。有关更多详细信息,请参阅 man signal(7) and man pthreads(7)(忽略与旧线程实现相关的 Linux 线程信息)。

虽然 POSIX 没有要求,所以这些细节是 OS 具体的。