c - 向 C 中的 pthreads 发送和捕获信号

标签 c multithreading process pthreads

我知道如何使用 kill(pid_t pid, int sig) 函数向 C 中的子进程发送信号。向线程发送信号怎么样?是否可以?。如果是这样,如何在“子”线程上捕获信号。例如,如果主线程向我发送终止信号,我如何在另一个线程中捕获它。

最佳答案

对于 POSIX 线程,您具有函数 pthread_cond_waitpthread_cond_signal

int pthread_cond_wait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex)
int pthread_cond_signal(pthread_cond_t *cond)

收到信号的线程应该阻塞在 pthread_cond_wait 调用上,直到另一个线程使用 pthread_cond_signal 发送信号,并使用相同的条件变量。

考虑到将信号传递给进程的类比,这有点不同,因为发出信号的线程已经暂停执行以等待信号,这与简单地被中断并继续运行的进程不同。

关于c - 向 C 中的 pthreads 发送和捕获信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4208929/

相关文章:

c - 对运动 vector 进行分组

c - 需要帮助来理解这段代码的输出

c - 使用 Octave 读取二进制文件

java - 多线程中如何获取锁以及在哪个对象上获取锁?

android - 来自通知的 Activity 中收到错误的 Intent (在服务中)

C++ Qt 在单独的进程中运行应用程序的各个部分

c - gets() 不起作用

javascript - 我们真的需要多线程 JavaScript 吗?

linux - 即使某些进程完成,也要不断填充并行进程的四个槽

c - 从父进程获取子进程的退出状态并将其打印在父进程中。