我知道如何使用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发送信号.
考虑到传递到进程的信号的类比,这有点不同,因为信号线程已经暂停了等待信号的执行,而不像简单地中断并继续进行的进程.