Linux多執行緒基礎之執行緒基礎用法

2021-09-10 17:03:30 字數 1023 閱讀 4781

多人砌牆的故事

​ 加快任務完成可以通過加人的方法來實現。

​ 同樣,程式中可以通過加程序來實現,但是,多程序存在資源浪費的問題。

​ 而執行緒沒有資源浪費的問題。

總結:

執行緒就是「輕量級」的程序

執行緒與建立它的程序共享**段、資料段

執行緒有自己的棧

建立執行緒:

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

返回值:成功:0

​ 失敗:錯誤編碼

引數1:新建立的執行緒id

引數2:待建立執行緒的屬性

引數3:執行緒的入口函式

引數4:執行緒的入口函式的引數,可以為null

等待執行緒結束:

解釋:多程序中,父程序結束時,子程序可以不結束;

​ 但是多執行緒中,程序a(主線程)退出時,子執行緒也會結束。

int pthread_join(pthread_t thread, void ** retval);

功能:用於等待執行緒結束

返回值:

​ 成功:0

​ 失敗:錯誤編碼

引數1:要等待結束的執行緒id

引數2:儲存目標執行緒退出時的狀態,一般為null

退出執行緒:

注意:不可以使用exit()哦!!! 這樣會使整個程序退出。

void pthread_exit(void * retval);

功能:結束執行緒

引數1:儲存返回值

結束:**例項請參考下一節講解(linux多執行緒之執行緒互斥(互斥鎖))

Linux多執行緒基礎 基礎)

程序 乙個正在執行的程式,它是資源分配的最小單位 執行緒 是程式執行的最小單位,可以理解為程序的乙個實體。乙個程序可以有多個執行緒。執行緒不能離開程序單獨存在,離開程序談執行緒是沒有意義的。多執行緒的相比多程序的優勢 建立子程序是拷貝父程序所有的資源進行併發處理,這樣需要更多的資源消耗,對硬體要求更...

多執行緒基礎

對於多執行緒程式設計,很多人概念不清,寫 的時候要麼是處處加鎖,影響效能不說,還容易莫名其妙的死鎖,還有人對多執行緒敬而遠之。所以學習多執行緒程式設計最重要的不是學習 api,而是理解什麼才是多執行緒安全的 從例子說起 include include long global1 0 volatile ...

多執行緒基礎

什麼是併發 同時執行多個程式,或者乙個程式的多段 在巨集觀上,存在併發的,但是在微觀上,其實不存在併發 時間片 在計算機中,使用時間片來實現併發的運算 在計算甲中,在最小的單位時間上 只能執行乙個運算 用來控制多個程式之間的輪轉,使得程式交替的執行 達到併發的目的 多個cpu 多個核心 才能實現真正...