基本概念:
每个线程都有自己的信号屏蔽字,但是信号的处理是进程所以线程共享的。这意味着单个线程可以阻止某些信号,但当某个线程修改了与某个给定信号相关的处理行为以后,所有的线程都必须共享这个行为处理的改变。
进程中的信号是传递到单个线程的。如果一个信号与硬件故障相关,那么该信号一般都会被发送到引起该事件的线程中去,而其他的信号则被发送到任意一个线程。
要把信号发送给线程,可以调用pthread_kill
PTHREAD_KILL(3) Linux Programmer's Manual PTHREAD_KILL(3)
NAME
pthread_kill - send a signal to a thread
SYNOPSIS
#include <signal.h>
int pthread_kill(pthread_t thread, int sig);
Compile and link with -pthread.
注意,闹钟定时器是进程资源,并且所有的线程共享相同的闹钟。所以,进程中的多个线程不能互不干扰地使用闹钟定时器。
参考:《unix环境高级编程》·第三版
End;
转载请注明原文地址: https://ju.6miu.com/read-1297608.html