这似乎是一个愚蠢的问题,但我在任何地方都找不到答案。我知道在 UNIX 中,信号是异步处理的。如果我编写一个处理信号的函数,该函数在哪里运行?是否产生了新线程?现有线程是否以某种方式中断?或者这是在像异步 I/O 这样的系统线程中处理的?

最佳答案

信号函数的执行就像进程中的线程被中断一样。也就是说,信号处理程序使用发出信号的线程被调用,并且堆栈被重新排列,以便当信号处理程序返回时线程继续执行。没有引入新线程。

关于linux - Linux 中如何处理异步信号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5905935/

10-11 22:53
查看更多