多线程编程指南

向线程发送信号

请使用 pthread_kill(3C) 向线程发送信号。

pthread_kill 语法

int	 pthread_kill(thread_t tid, int sig);
#include <pthread.h>

#include <signal.h>



int sig;

pthread_t tid;

int ret;



ret = pthread_kill(tid, sig);

pthread_kill() 将信号 sig 发送到由 tid 指定的线程。tid 所指定的线程必须与调用线程在同一个进程中。sig 参数必须来自 signal(5) 提供的列表。

如果 sig 为零,将执行错误检查,但并不实际发送信号。此错误检查可用来检查 tid 的有效性。

pthread_kill 返回值

pthread_kill() 在成功完成之后返回零。其他任何返回值都表示出现了错误。如果出现以下任一情况,pthread_kill() 将失败并返回相应的值。


EINVAL

描述:

sig 是无效的信号量。


ESRCH

描述:

当前的进程中找不到 tid