多人砌牆的故事
加快任務完成可以通過加人的方法來實現。
同樣,程式中可以通過加程序來實現,但是,多程序存在資源浪費的問題。
而執行緒沒有資源浪費的問題。
總結:
執行緒就是「輕量級」的程序
執行緒與建立它的程序共享**段、資料段
執行緒有自己的棧
建立執行緒:
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 多個核心 才能實現真正...