Pthread 中的信号处理

问题描述 投票:0回答:1

在信号头中有一个信号并上升。 Signal 用于捕获信号,raise 用于向调用者参数发送信号。

但是在使用pthread的多线程编程中,我们可以使用pthread_kill来向其他线程发送信号,但是如何接收通过pthread_kill调用发送的信号

c multithreading pthreads systems-programming
1个回答
0
投票

如何接收通过 pthread_kill 调用发送的信号

一般可以处理信号的任何方式。

pthread_kill()
kill()
raise()
的不同之处主要在于如何选择处理信号的线程。使用
pthread_kill()
,调用者指定信号将定向到的线程(同一进程的)。使用
kill()
,调用者选择进程,但系统选择哪个线程。使用
raise()
,信号将被定向到调用
raise()
的线程。这些都不会改变信号的处理方式。

当信号在给定线程上变为待处理状态时,它将被处理

  • 同步,例如通过
    sigwait()
    sigwaitinfo()
    ;或
  • 异步地,通过
    • 运行为该信号注册的信号处理函数(如果有)或
    • 根据该信号的默认配置
© www.soinside.com 2019 - 2024. All rights reserved.