Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux syscall()来调用tkill()_Linux_Multithreading_Signals_System Calls - Fatal编程技术网

Linux syscall()来调用tkill()

Linux syscall()来调用tkill(),linux,multithreading,signals,system-calls,Linux,Multithreading,Signals,System Calls,你好 使用tkill()linux内核调用向进程的每个线程发送信号是否安全? 由于它不是直接公开的,所以我使用syscall()调用它 我指的是链接- 但是我不知道我是否应该在通话前做一些检查(如状态检查或锁互斥等) 谢谢 Sandeep只需使用pthread库pthread_kill()。这就是它的用途。POSIX库没有做什么,您想实现什么?我想定期向进程的每个线程发送信号SIGUSR1。并处理它。有kill()和sigqueue(),但它们不能保证每次信号都由各自的线程处理。tkill()和

你好

使用tkill()linux内核调用向进程的每个线程发送信号是否安全? 由于它不是直接公开的,所以我使用syscall()调用它

我指的是链接-

但是我不知道我是否应该在通话前做一些检查(如状态检查或锁互斥等)

谢谢
Sandeep

只需使用pthread库pthread_kill()。这就是它的用途。

POSIX库没有做什么,您想实现什么?我想定期向进程的每个线程发送信号SIGUSR1。并处理它。有kill()和sigqueue(),但它们不能保证每次信号都由各自的线程处理。tkill()和pthread_kill()使用两个不同的线程ID。您知道它们之间的关系吗?如何从另一个线程中检索一个线程?当一个本机线程完成时,它的线程id可以被其他线程重用。。这与pthread library使用的线程ID相同。@sandeep pthread_kill使用pthread library线程ID。tkill使用内核任务ID(在内核源代码中称为“进程ID”)。两者之间的关系完全没有定义,并且是特定于实现的。