在我正在处理的代码库中,所有线程控制都是使用std::thread
和相关对象完成的,而不是直接使用pthread
。
但是,我找不到pthread_sigmask
的C ++等价物,所以我想知道是否有一种标准的C ++方法来阻止信号,从而在多线程应用程序中一致地处理信号。 / p>
特别是,我想知道是否有办法在没有c++11
#include <pthread.h>
来执行示例here
答案 0 :(得分:2)
简答:不。
pthread_sigmask
是一个pthread函数,C ++标准的线程函数库不依赖于特定的线程库。例如,Windows实现可能会使用Windows API。
如果您想使用该功能,则需要包含<signal.h>
并直接使用。即使examples from Boost也这样做。
考虑一下你想要做什么,并问自己是否真的想通过依赖非标准功能或概念来打破可移植性。请记住,线程和信号可能无法很好地协同工作;见Are std::signal and std::raise thread-safe?