假设一个多线程应用程序,其中定义了信号处理程序。
现在,如果一个信号被传递到PROCESS,并且调用了信号处理程序 - 我怀疑在期间信号处理程序运行期间其他线程会发生什么。他们是否继续奔跑,好像什么都没发生或者他们在那段时间被停职......或者......?
如果有人可以告诉我为什么要证明答案的合理性?
答案 0 :(得分:4)
specification非常清楚信号和线程如何相互作用:
为进程生成的信号应该传递给进程内的其中一个线程,这些线程在调用sigwait()函数时选择该信号或者没有阻止信号的传递。
当信号传递到一个线程时,其他线程不受影响(并继续运行)。
答案 1 :(得分:1)
线程是独立的:从一个线程到另一个线程的信号不会影响任何其他线程。原因是因为它们是独立的。影响其他线程的唯一原因是,如果相关线程的信号处理程序以某种方式与其他线程交互。