gpt4 book ai didi

c++ - 是否有 C++ 标准库包装器或 pthread_sigmask 的替代品?

转载 作者:太空狗 更新时间:2023-10-29 21:43:45 25 4
gpt4 key购买 nike

在我正在处理的代码库中,所有线程控制都是使用 std::thread 完成的和相关对象,而不是使用 pthread直接地。

但是,我没能找到 pthread_sigmask 的 C++ 等价物,所以我想知道是否有标准的 C++ 方法来阻止信号,从而在多线程应用程序中一致地处理信号。

特别是,我想知道是否有办法做这个例子 here使用 c++11没有#include <pthread.h>

最佳答案

简短的回答:没有。

pthread_sigmask是一个 pthread 函数,线程函数的 C++ 标准库不依赖于特定的线程库。例如,Windows 实现可能会在后台使用 Windows API。

如果您想使用该功能,则需要包含 <signal.h>并直接使用。连examples from Boost这样做。

考虑一下您正在尝试做什么,并问问自己是否真的想通过依赖非标准功能或概念来破坏可移植性。请记住,线程和信号可能无法很好地协同工作;见Are std::signal and std::raise thread-safe?

关于c++ - 是否有 C++ 标准库包装器或 pthread_sigmask 的替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22054228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com