可以在每个线程的基础上设置信号掩码,但是信号处理呢?如果在使用sigaction()
创建新线程之前调用pthread_create()
,新线程是否会获得相同的信号处理程序?如果我在sigaction()
之后使用pthread_create()
,会改变整个过程信号处理程序还是只改变线程的那些?
答案 0 :(得分:2)
每个进程只有一个信号处理程序。所以线程在这里没有任何相关性。在接收信号的线程上下文中调用信号处理程序。如果多个线程没有阻塞信号,则不指定哪个线程接收信号。
如果多个线程在系统调用中等待,则必须小心。此外,您必须注意使用计时器操作和呼叫睡眠。
您可能还会发现此答案有用:POSIX threads and signals