gpt4 book ai didi

c++ - 在 C++ 中,我可以使用多线程工具将 UNIX 信号与我的主程序同步吗?

转载 作者:太空狗 更新时间:2023-10-29 12:29:59 26 4
gpt4 key购买 nike

sigaction 设置的信号处理程序是否在其自己的线程中运行?我可以使用 Pthreads 工具将我的信号处理程序与我的主程序(如 Pthreads 互斥体)同步吗?我可以使用 C++11 工具,例如 mutexatomic 吗?

抱歉,如果这个问题有点太笼统,但我真的很困惑信号和线程之间的关系。

我在 Linux 上工作,但这个问题通常适用于 UNIX。

最佳答案

没有。

唯一可以在信号处理程序中安全调用的函数是异步信号安全函数。对于 Linux,您可以在 signal.7 man page 中找到此类函数的列表。 ,在“Async-signal-safe functions”下,页面的一半以上。

任何未列为异步信号安全的函数都不能在信号处理程序中安全调用。

请注意,在 Linux 上唯一列为异步信号安全的同步函数是 sem_post()

关于c++ - 在 C++ 中,我可以使用多线程工具将 UNIX 信号与我的主程序同步吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30410514/

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