pthread kill函式例項

2021-10-17 11:20:55 字數 1019 閱讀 5872

pthread_kill函式是用來向執行緒傳送signal。類似於我們在linux下使用kill命令向指定的程序傳送signal。

函式原型:

pthread_kill - send a signal to a thread
#include int pthread_kill(pthread_t thread, int sig);
the  pthread_kill()  function  sends  the  signal  sig  to thread, a thread in the same process as the caller.  the signal is asyn‐

chronously directed to thread.

if sig is 0, then no signal is sent, but error checking is still performed.

以上是從man手冊上獲取的pthread_kill函式的資訊,可以看出pthread_kill其實就是用來向指定的執行緒傳送sig訊號,然後執行對應的訊號處理函式。

但是最後寫了乙個sig is 0的情況,在int sig引數為0的時候,可以用來判定執行緒的存活情況。

return value 為0,表示執行緒存在。

return value 為esrch,表示執行緒不存在。

return value為 einval,表示訊號不合法。

所以pthread_kill(thread_id,0)就可以用來檢測線程的情況,來進行不同的處理。

int ret =

pthread_kill

(thread_id,0)

;if(ret == esrch)

else

if(ret == einval)

printf

("signal is invalid\n");

else

HPUX對於pthread kill的處理

摘自當年同事的測試結果 查詢pthread kill 庫函式在 hp ux os 上的man 資訊 description the pthread kill function is used to request that a signal be delivered to thread.the si...

pthread kill 向執行緒傳送訊號

別被名字嚇到,pthread kill可不是kill,而是向執行緒傳送signal。還記得signal嗎,大部分signal的預設動作是終止程序的執行,所以,我們才要用signal 去抓訊號並加上處理函式。int pthread kill pthread t thread,int sig 向指定id...

pthread kill向子程序傳送訊號函式

pthread kill 別被名字嚇到,pthread kill可不是kill,而是向執行緒傳送signal。還記得signal嗎,大部分signal的預設動作是終止程序的執行,所以,我們才要用signal 去抓訊號並加上處理函式。int pthread kill pthread t thread,...