linux系統程式設計 執行緒

2021-10-09 01:40:58 字數 1516 閱讀 8132

#include*

**int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void ), void arg);

#include

#include

#include

#include

#include

#include

void

sys_err

(const

char

*str)

void

*tfn

(void

*arg)

intmain

(int argc,

char

*ar**)

return0;

}

*void pthread_exit(void retval); 退出當前執行緒

int pthread_join(pthread_t thread, voidretval); 阻塞 **執行緒。

示例

#include

#include

#include

#include

#include

#include

struct thrd

;void

sys_err

(const

char

*str)

void

*tfn

(void

*arg)

intmain

(int argc,

char

*ar**)

int pthread_cancel(pthread_t thread); 殺死乙個執行緒。 需要到達取消點(儲存點)

thread: 待殺死的執行緒id

返回值:成功:0

失敗:errno

如果,子執行緒沒有到達取消點, 那麼 pthread_cancel 無效。

我們可以在程式中,手動新增乙個取消點。使用 pthread_testcancel();

成功被 pthread_cancel() 殺死的執行緒,返回 -1.使用pthead_join **。

int pthread_detach(pthread_t thread); 設定執行緒分離

執行緒控制原語

程序控制原語

pthread_create()

fork()

pthread_self()

getpid()

pthread_exit()

exit()

pthread_join

wait()/waitpid()

pthread_cancel()

kill()

pthread_detach()

《Linux系統程式設計 執行緒池》

在傳統伺服器結構中,常是有乙個總的監聽執行緒監聽有沒有新的使用者連線伺服器,每當有乙個新的使用者進入,伺服器就開啟乙個新的執行緒使用者處理這 個使用者的資料報。這個執行緒只服務於這個使用者,當使用者與伺服器端關閉連線以後,伺服器端銷毀這個執行緒。然而頻繁地開闢與銷毀執行緒極大地占用了系統的資源,而且...

Linux系統程式設計 執行緒基礎

執行緒的概念 執行緒是程序內部的一條執行序列,或者執行流。每個程序至少有一條執行緒,稱之為主線程。從 的角度看,就是main函式的函式體。在主線程中可以通過執行緒庫建立其他函式執行緒。在同乙個程序中的執行緒都是併發執行的,並且執行緒的執行順序由系統決定。主線程和函式執行緒沒有本質的區別,只是主線程是...

linux 系統程式設計 5 執行緒

目錄7.3 設定執行緒屬性 參考乙個程序至少需要乙個執行緒作為它的指令執行體,程序管理著資源 比如cpu 記憶體 檔案等等 而將執行緒分配到某個cpu上執行 新的執行執行緒將擁有自己的棧,但與它的建立者共享全域性變數 檔案描述符 訊號處理函式和當前目錄狀態 特點 使用pthread create建立...