在C发送和捕获信号到pthreads

前端之家收集整理的这篇文章主要介绍了在C发送和捕获信号到pthreads前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道如何使用kill(pid_t pid,int sig)函数在C中向子进程发送信号.如何发送信号到线程?可能吗?.如果是这样,如何捕获“小孩”线上的信号.例如,如果主线程给我发送一个终止信号,我该如何在另一个线程中捕获它.

解决方法

使用POSIX线程,您可以使用函数pthread_cond_wait和pthread_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++相关文章