APUE之執行緒初探

2021-07-10 16:36:20 字數 807 閱讀 5733

執行緒:

什麼是執行緒?很多介紹都是「輕量級的程序」,不過感覺執行緒的定義一直都比較模糊,沒有找到什麼具體的定義。倒是覺得「程序是資源分配的最小單位,執行緒是排程的基本單位」,這個說法算是比較認可的。

現在主要探索的就是apue中提供的關於執行緒的相關函式。

執行緒標示:

和程序一樣,執行緒也有自己的id,linux系統提供的執行緒函式是:

#include int pthread_equal(pthread_t tid1, pthread_t tid2);
執行緒可以通過pthread_self函式獲得自身的執行緒id。

#include pthread_t pthread_self(void);
執行緒建立:

傳統unix程序模型中,每個程序只有乙個控制線程。當需要多個執行緒的時候需要呼叫函式來進行建立。

#include int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void * (*start_rtn)(void *), void *restrict arg);
新建立的執行緒從start_rtn函式的位址開始執行。執行緒建立的時候並不能保證哪個執行緒會先執行:是新建立的執行緒還是呼叫執行緒。pthread_create()中會應用attr引數指定的屬性,如果引數預設為null,會使用預設屬性。當函式成功返回的時候,pthread_create函式將會把執行緒id儲存在thread引數的記憶體位置。

未完待續。。。。。。。

APUE之執行緒(四)

執行緒同步 執行緒同步問題,可以說是每一本經典的作業系統教程都能會提到。簡單的說就是對於乙個變數,如果乙個程序可以修改,其他的程序也可以讀取或者修改這個變數的時候,就需要對這些程序進行同步,以確保他們在訪問變數儲存的內容的時候不會訪問到無效的資料。互斥量 互斥變數的資料型別用pthread mute...

APUE之執行緒(五)

執行緒同步 讀寫鎖 繼續往下說執行緒同步問題。讀寫鎖與互斥量類似,但是讀寫鎖的好處是允許更高的並行性。讀寫鎖有三種狀態 讀模式下加鎖狀態,寫模式下加鎖狀態,不加鎖狀態。下面有中情況需要說明以下,寫加鎖狀態時,未被解鎖的時候,所有試圖對這個鎖進行加鎖的執行緒都會被阻塞。讀加鎖狀態時,所有以讀模式對它進...

APUE學習筆記 執行緒

採用多執行緒模式可以採用同步程式設計,而非非同步程式設計,可以簡化程式設計 多個程序間可以很方便的共享資料 可以通過pthread self獲得自身的執行緒id。執行緒id只在程序內部唯一。新建立執行緒不能保證那個執行緒先執行,新縣城可以訪問程序的位址空間,繼承執行緒的浮點環境和訊號遮蔽字。如果任意...