我正在用C编写一个多线程程序,其中main()改变了某些信号的行为,然后产生了更多的线程。问题是:当信号到达时,其他线程是继续执行,还是在处理信号时暂停并继续执行?
谢谢
答案 0 :(得分:0)
当信号到达时,其他线程继续执行
在Linux上,他们这样做是因为信号只传递给一个线程。除非信号为SIGSTOP
,否则会停止进程的所有线程。有关更多详细信息,请参阅man signal(7)
和man pthreads(7)
(忽略与旧线程实现相关的LinuxThreads信息)。
虽然POSIX不需要,但这些细节是特定于操作系统的。