多线程信号处理

发布于 2024-10-27 21:46:04 字数 115 浏览 1 评论 0原文

  1. 在unix中,如果向多线程进程发送信号,哪个线程将执行处理函数?

  2. 如果是多CPU机器,则同时运行的线程数超过1个。哪个线程将运行信号处理函数?

  1. In unix, If a multi-threaded process was sent a signal, which thread will be the one to execute the handling function?

  2. if it is a multi-cpu machine, more than 1 thread is running at the same time. which thread will be the on to run the signal handling function?

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

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

发布评论

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

评论(1

寄与心 2024-11-03 21:46:04

根据man 7 signal,进程中的所有线程共享同一个信号处理程序,并且如果信号被传递到具有多个未阻塞该信号的线程的进程,任意选择其中一个线程来接收该信号。

拥有多 CPU 机器不会改变这些语义。

According to man 7 signal, all threads in the process share the same signal handler, and if a signal is delivered to a process with multiple threads that have not blocked the signal, one of them is arbitrarily chosen to receive it.

Having a multi-CPU machine will not change these semantics.

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