使用道具 举报
Post by realtang;2076405 在linux上,可以用gettid取代getpid。 然后用kill或者sigqueue发送信号给指定进程。
Post by haohao_h;2076407 不是吧?linux只是用进程来实现线程,线程跟进程还是不能等同的。 我记得进程间的信号量和线程的信号量实现的是不一样的!
Post by qiaomuf;2076424 不知道我的理解对吗,因为gettid返回的是内核线程id,而内核线程id又对应一个进程创建的所有线程,向这个内核进程id发送信号就会给该进程创建的所有线程发送信号,同时这个信号也不会apue中讲的那样被忽略。
Post by realtang;2076442 gettid获得的是的线程的真正内核ID,每一个不同的线程都对应一个唯一的tid。 另外如果用gettid,那么只会在Linux有效,在其他posix环境是不能portable的。
Post by qiaomuf;2076497 那就是说这样只能向某个具体的线程发送信号,而不能向某个进程所创建的所有线程发送一个信号,并由内核去选择具体哪个线程来处理信号?
本版积分规则 发表回复 回帖后跳转到最后一页