gpt4 book ai didi

c++ - 如果没有线程阻塞信号,并且一个线程在 `sigwait()` 中,是否可以保证被阻塞的线程将接收到下一个信号?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:54:32 26 4
gpt4 key购买 nike

假设我有一个不阻塞任何信号的多线程应用程序,并且一个线程调用 sigwait() 并使用 SIGTERM 的掩码。如果进程从外部接收到SIGTERM,是否可以保证以下任一情况?

  1. sigwait() 上阻塞的线程将接收它。
  2. 上面的线程是将接收它的唯一线程。

我检查了 man page , 但它没有解决这些问题中的任何一个。

最佳答案

至少对于 Linux:这两种可能性都不能保证,因为:

来自 man 7 signal :

The signal disposition is a per-process attribute: in a multithreaded application, the disposition of a particular signal is the same for all threads.

因为不止一个线程不会阻塞 SIGINT 那些可能会收到它。

关于c++ - 如果没有线程阻塞信号,并且一个线程在 `sigwait()` 中,是否可以保证被阻塞的线程将接收到下一个信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22057352/

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