是否有C++标准库包装器或替代pthread_sigmask
Is there a C++ standard library wrapper around or replacement for pthread_sigmask?
在我正在处理的代码库中,所有线程控制都是使用std::thread
和相关对象完成的,而不是直接使用pthread
。
但是,我一直无法找到C++等效的 pthread_sigmask
,所以我想知道是否有一种标准的C++方法来阻止信号,从而在多线程应用程序中一致地处理信号。
特别是,我想知道是否有办法在这里使用c++11
来做这个示例,而无需#include <pthread.h>
简短回答:不。
pthread_sigmask
是一个 pthread 函数,线程函数的C++标准库不依赖于特定的线程库。例如,Windows实现可能会在后台使用Windows API。
如果要使用该函数,则需要包含<signal.h>
并直接使用它。即使是来自Boost的例子也这样做。
考虑一下你想做什么,问问自己是否真的想通过依赖非标准功能或概念来打破可移植性。请记住,线程和信号可能无法很好地协同工作;请参阅 std::signal 和 std::raise 线程安全吗?
相关文章:
- 在 c++11 中为 pthread 设置调度参数
- 如果不包含 pthread,为什么 GCC 的线程标准库实现会抛出异常?
- pthread只有在线程数量较少时才可以正常工作
- pthread执行时间比顺序执行时间差
- 使用 -pthread 如何不违反 ODR 规则?
- 使用 pthread 的多线程
- 销毁 pthread 互斥体和 C++ 中的取消初始化顺序
- 函数 AfxEndThread 中的读取访问冲突"pThread-> was nullptr"
- 锁定步进pthread互斥
- Pthread段错误,使用指向main中变量的指针
- pthread导致的内存泄漏
- GCC:--静态链接到pthread的整个存档配方在最近的GCC版本中停止工作
- 正确地编写一个类,并将pthread与vlc库和c++一起使用
- 直接读取 pthread 互斥锁的所有者字段是否安全?
- 为什么 pthread 会减慢代码速度?
- 对 pthread CLion 的未定义引用
- C++ 17:pthread的生成文件标志
- 将带有结构的参数传递给 pthread
- Posix 线程类和启动例程 (pthread)
- 在 pthread 中使用共享变量