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

时间:2017-12-28 11:02:35

标签: c multithreading signals execution pause

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

谢谢

1 个答案:

答案 0 :(得分:0)

  

当信号到达时,其他线程继续执行

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

虽然POSIX不需要,但这些细节是特定于操作系统的。