Linux 多執行緒筆記

2021-07-26 16:45:20 字數 665 閱讀 3886

1.linux多執行緒概述

為了進一步減少處理器的空轉時

間支援多處理器和減少上下文切換開銷,也就出現了執行緒。

每個程序至少都有乙個main執行緒。它

與同程序中的其他執行緒共享程序空間{堆** 資料 檔案描述符 訊號等},只擁有自己的棧空間,大大減少了上下文切換的開銷。

看看優缺點: 執行緒開銷小,占用cpu小,執行緒之間切換快,但是不利於資源保護。

程序相反,從可移植性來說,程序的移植性要好。

1.2.執行緒分類

使用者級執行緒:主要解決上下文切換問題,排程演算法和排程過程全部由使用者決定,在執行時不需要特定

的核心支援。缺點:發揮不了多處理器的優勢。

核心級執行緒:允許多執行緒併發執行,

1.3.執行緒建立的linux實現

程序 fork() exit() wait()

執行緒 pthread_create() pthread_exit() pthread_join() 編譯-lpthread(前面l是小寫的l)

2.執行緒的建立和退出

pthread_creat(pthread_t thread,pthread_attr_t attr,void (*start_routine)(void ),void *arg);

void pthread_exit(void *retval);

linux多執行緒學習筆記

1.乙個程序中的所有執行緒都可以訪問該程序的組成部件,如檔案描述符和記憶體。2.在乙個程序中採用多執行緒程式設計可以改善響應時間和提高系統吞吐量。3.程序的所有資訊對該程序的所有執行緒都是共享的,包括可執行的程式文字,程式的全域性記憶體和堆記憶體,棧以及檔案描述符。4.執行緒id用pthread t...

Linux多執行緒學習筆記 1

smp意為多程序對稱處理,用來指代多個處理器可以共享同一記憶體和各種io裝置的硬體架構,如果乙個處理器有多個核心,那麼smp會把每個核心作為乙個處理器來對待。每乙個任務 作業系統排程的最小單位 只能在同乙個處理器執行,不存在同一任務在多個處理器上同時執行,原因是每個處理器可以處理任意乙個任務,無論這...

多執行緒筆記

1 stdin fileno 在unix一些系統呼叫中使用到stdin fileno表示標準輸入,stdout fileno表示標準輸出,stderr fileno表示標準出錯,使用時需要加標頭檔案 在unix下還有stdin,stdout,stderr表示同樣的含義。stdin fileno與st...