c - 当信号到达时线程是否继续执行?

标签 c multithreading signals execution pause

我正在用 C 语言编写一个多线程程序,其中 main() 更改某些信号的行为,然后生成更多线程。问题是:当信号到达时,其他线程是继续执行,还是在处理信号时暂停并恢复执行?

谢谢

最佳答案

do the other threads continue executing when a signal arrives

在 Linux 上,他们这样做是因为信号只传递到一个线程。除非信号是 SIGSTOP,它会停止进程的所有线程。请参阅man signal(7)man pthreads(7)了解更多详细信息(忽略与旧线程实现相关的 LinuxThreads 信息)。

尽管 POSIX 不要求这样做,所以这些详细信息是特定于操作系统的。

关于c - 当信号到达时线程是否继续执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48006298/

相关文章:

Python:杀死 child 的子进程

c++ - TCP 套接字上的 read() 何时返回

java - 随机调用文本文件中不同命令的百分比

python - Twisted threading 如何避免深拷贝

android-activity - 在 Activity 图中正确使用信号

c - prctl(PR_SET_PDEATHSIG) 竞争条件

c - SSE等 vector 编程(SIMD)

c - 将线程输出保存在变量中

ios - 如何从纯 C 函数获取返回值到 swift?

java - Java 中的线程安全双向关联