在我的程序中,我需要在timer(timer_create())到期时执行一些操作。我想通过生成一个新线程来执行此操作。所以我想知道在信号处理程序中创建一个线程是否安全?
答案 0 :(得分:2)
信号处理程序可能无法调用非重入函数。您应该查看您的o / s文档,但创建一个线程不太可能重入。在linux上,man -s7 signal
为您提供了一个安全调用函数列表,其中不包含任何来自pthread的函数。
信号处理程序真的应该做的就是为主代码或信号处理线程设置一个标志来读取。不仅如此,还有风险。