一个《UNIX环境高级编程》中也没有讲清楚的重要问题---线程中的信号

发布于 2022-07-25 11:42:40 字数 228 浏览 22 评论 2

总所周知,每个进程都有自己的未决信号队列msgqueue,未决信号集和信号屏蔽字。

1. 当创建一个线程时,一个线程会继承创建者的信号屏蔽字并且清空它。那么,线程是否拥有自己
的信号队列msgqueue和未决信号集呢?

2. 假设有一个信号SIGABRT,能否使得一个线程接收到它时调用func1(),而另外一个线程接收到它时调用func2()?

3.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

空城旧梦 2022-07-26 06:13:05

自己建一个消息队列,循环处理消息就好了。系统的信号主要是针对进程的,而且感觉对线程来说不可靠。

眼泪也成诗 2022-07-25 12:02:51

我就不懂,既然linux线程没有自己的sigqueue,而是使用到创建者的sigqueue上去取信号,那么为什么还要用pthread_pkill来向线程发送信号呢,这有什么意义啊?别的线程不是也可能会到同一个sigqueue取掉啊?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文