執行緒基礎函式

2021-08-06 03:20:55 字數 1040 閱讀 2090

ps -lf pid

//檢視程序

ps -elf

//檢視全部執行緒

gcc test.c -lpthread 編譯需要鏈結pthread 庫

//獲取當前程序的id

getpid();

//獲取當前執行緒的id

pthread_self();

//建立執行緒1.執行緒識別符號2.執行緒屬性3.執行緒處理函式4.函式的引數

pthread_create(&tid,null,fun,null);

//執行緒退出函式

pthread_exit((void*)2);

//任何執行緒呼叫都會使程序退出

exit(1);

//(分離態) 過的執行緒無法 pthread_join(**)//此執行緒結束馬上被**占用資源

pthread_detach(tid);

//理解:主線程等待子執行緒的終止。也就是在子執行緒呼叫了pthread_join()方法後面的**,只有等到子執行緒結束了才能執行。  

pthread_join(tid, &tret);

//取消某個執行緒,但是得等到下次檢測該執行緒才正真**資源//待測試

pthread_cancel(tid);

//初始化執行緒屬性

pthread_attr_init(attr);

//銷毀執行緒屬性所占用的資源

pthread_attr_destroy(attr);

//設定執行緒分離態屬性//第二個為傳入引數

pthread_attr_setdetachstate(attr, detachstate);

//獲取執行緒分離態屬性//第二個為傳出引數

pthread_attr_getdetachstate(attr, detachstate);

//設定執行緒棧的位置和大小

pthread_attr_setstack(&attr,&stackaddr,size);

//獲取執行緒的位置和大小

pthread_attr_setstack(&attr,&&stackaddr, &size);

執行緒基礎3 執行緒中斷

已經過時的方法 暫停 suspend 恢復 resume 停止 stop 過時原因 suspend 方法在呼叫後,執行緒不會釋放已經占有的資源 比如鎖 而是占有著資源進入睡眠狀態,這樣容易引發死鎖問題。stop 方法在終結乙個執行緒時不會保證執行緒的資源正常釋放。執行緒中斷的三個方法 注意 執行緒在...

執行緒基礎與執行緒同步

二 執行緒同步 我們都知道,程序是運轉中的程式,是為了在cpu上實現多道程式設計而發明的乙個概念。但是程序在乙個時間只能幹一件事情,如果想要同時幹兩件或者多件事情,例如同時看兩場電影,我們自然會想到傳說中的分身術,就像孫悟空那樣可以變出多個真身。雖然我們在現實中無法分身,但程序卻可以辦到,辦法就是執...

執行緒基礎 實現多執行緒

public class thread01 extends thread public static void main string args public class thread02 implements runnable public static void main string args...