gpt4 book ai didi

在多线程程序中捕获 SIGINT

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

我正在编写一个多线程程序,我想在其中处理来自用户的可能的 Ctrl-C 命令以终止执行。据我所知,不能保证能够取消每个工作线程的主线程会捕获信号。因此,是否有必要为工作线程的代码设置一个不同的信号处理程序,以便任何人都能在信号到达时捕捉到它,或者是否有另一种方法可以做到这一点,只在主线程的代码中设置一个信号处理程序?

最佳答案

您可以使用 pthread_sigmask() 阻止来自调用线程的信号。

并且,由于阻塞的信号会继承到新创建的线程,您可以在主线程中阻塞 SIGINT,然后启动其他线程,然后在主线程中取消阻塞(如果需要的话)。

关于在多线程程序中捕获 SIGINT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6250126/

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