linux 執行緒 快速掃瞄

2021-06-12 22:41:03 字數 1011 閱讀 6720

好久沒有用過多執行緒了,今天 看code有碰到 不少的多執行緒的東西,有必要快速掃一邊,

#include

1:pthread_t:執行緒的id,不同與程序id的是,程序id pid_t是乙個非負的整數。而pthread_t在標準裡並沒有規定它的實現,可以用結構體來實現(不同的系統可能有不同的實現)

2:int pthread_equal(pthread_t tid1, pthread_t tid2)

由於pthread_t的不確定性,對兩個pthread_t的對比要使用這個函式來進行才安全。

3:pthread_t pthread_self(void)

獲取當前執行緒的識別符號

4:int pthread_create(pthread_t *restrict tidp, const pthread_attr_t restrict attr, void * (*start_rtn)(void), void *restrict arg);

建立乙個新的執行緒,tidp 執行緒id,attr, 設定執行緒的屬性, start_rtn 執行緒的函式 , arg 執行緒函式的引數

5:int pthread_exit (void * rval_ptr);

結束當前執行緒, 結束時傳出的引數可由pthread_join獲得

6:int pthread_join(pthread_t thread, void **rval_ptr)

等待thread執行緒結束,rval_ptr 返回的引數(根據返回方式的不同而不同)

7:int pthread_cancel(pthread_t tid)

請求tid 執行緒結束,(外部終止執行緒)

8:void pthread_cleanup_push(void(*rtn)(void*), void *arg);

void pthread_cleanup_pop(int execute);

為執行緒填加清理函式,正常結束的執行緒是不會呼叫 的,詳細參考執行緒處理函式pthread_cleanup_push / pthread_cleanup_pop

快速排序雙向掃瞄

package 排序 思想 partition部分是從第二個元素開始作為左指標與第乙個元素 主元 進行比較 如果左指標對應的元素小於等於主元,那麼左指標繼續向右移動,直到左指標對應的元素大於主元 輪到右指標進行掃瞄,如果右指標對應的元素比主元大,那麼右指標向左移動,直至主元大於右指標對應的元素,那麼...

快速排序 雙邊掃瞄與單邊掃瞄的實現

快速排序 時間複雜讀o n logn 最差o n 2 平均o n logn 主要思想是選取乙個標誌位,大於標誌位的放到右邊,小於標誌位的放到左邊,在以標誌位為分割,分而制之,左遞迴,右遞迴,直到完成。快速排序的思想 雙邊掃瞄 快速排序就像乙個資料快,前後各有乙個下標 指標 i j,隨機選取 此處取下...

快速理解Linux多執行緒及Epoll

我們用網遊來簡單理解一下這幾個概念 1.多執行緒 比如我們要下個副本,自己乙個人單力孤 主線程 推不過去怎麼辦?最實在的方法,組滿人,一起下副本,大家在乙個程序 推副本 中互相合作,多個隊員就是多執行緒。比如我是法師,只管輸出 隊員中有牧師,只管加血 輸入 mt做mt的事.也有可能我們隊伍都是弓手,...