Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 为什么SIGALRM不能在HPUX上的线程中发生?_Multithreading_Alarm_Hp Ux - Fatal编程技术网

Multithreading 为什么SIGALRM不能在HPUX上的线程中发生?

Multithreading 为什么SIGALRM不能在HPUX上的线程中发生?,multithreading,alarm,hp-ux,Multithreading,Alarm,Hp Ux,我发现在HPUX上,SIGALRM信号可以由系统创建,并由进程在单线程应用程序中正确捕获。但是,如果在线程中设置SIGALRM,SIGALRM将不再发生。 为什么?此问题仅在HPUX平台上出现,但在其他UNIX平台上效果良好:拉里斯sparc、x86、Linux、AIX、Mac和Ubantu 请帮帮我!谢谢 中的信号处理:作为信号处理程序:对于所有UNIX平台,信号处理程序都是按进程安装的。在多线程环境中,进程中的每个信号只有一个信号处理程序。为任何线程安装的最后一个信号处理程序对进程中的所有线

我发现在HPUX上,SIGALRM信号可以由系统创建,并由进程在单线程应用程序中正确捕获。但是,如果在线程中设置SIGALRM,SIGALRM将不再发生。 为什么?此问题仅在HPUX平台上出现,但在其他UNIX平台上效果良好:拉里斯sparc、x86、Linux、AIX、Mac和Ubantu

请帮帮我!谢谢

中的信号处理:作为信号处理程序:对于所有UNIX平台,信号处理程序都是按进程安装的。在多线程环境中,进程中的每个信号只有一个信号处理程序。为任何线程安装的最后一个信号处理程序对进程中的所有线程都有效。在传递信号时调用处理程序

此外,SIGALRM是由接收它们的进程无法控制的事件生成的异步信号,并在不可预测的时间到达。因为异步信号被传递到进程而不是线程,不考虑正在执行的指令。这就是为什么SIGALRM不能在HPUX上的线程中发生


这是在HP-UX调度策略中;有。

非常感谢!但为什么它能在其他unix上工作呢?如何解决这个问题?