第 1 章 多執行緒基礎介紹

2022-09-20 13:33:17 字數 1104 閱讀 6134

1. lightweight process(輕量程序) 用來執行核心**和系統呼叫的核心執行緒,又稱作 lwp。

一般來說核心只有程序,為了提高效率搞了乙個輕量級程序,只用於核心排程。輕量級程序 = 核心執行緒!

2. 使用多執行緒的優點

① 提高互動體驗

比如互動操作,不用等待其他程序處理完畢再響應,而是可以立刻響應;

多執行緒思想類似程序的分時排程,其實提高了短任務的執行效率,但是又不像程序開銷那樣大!

② 充分利用cpu

上面①即使在cpu在滿負荷的時候也成立,這裡要說cpu一般情況下,也就是非滿負荷。

假如乙個程序要做好幾件事,一件事情阻塞了,多執行緒可以切換到其他事情,不至於cpu空等,提高了cpu利用率

③ 多cpu可以同時執行多個執行緒

多cpu情況下,同一程序內的多個執行緒可以在多個cpu上同時執行,這時cpu排程的單位變成了執行緒!

這更加減小了cpu空載的概率,提高了cpu的利用效率。

總之,可以從cpu是否滿負荷來書分為兩個方面,也可以從單核多核cpu來說提高cpu利用效率。

3. 多個cpu是如何同時執行多執行緒的?可以同時執行多個程序嗎?

多個執行緒共享一些資源,這些資源個管理只需要乙個mmu,所以多核一定可以同時執行多個執行緒;

假如是類似intel的core系列,每個cpu都有自己的cache和mmu,還可以同時執行多個程序!

4. 執行緒的joinable和detached

① pthread_join(): 在linux中主線程會呼叫該函式,用來等待子執行緒完成再退出,並在之後執行子執行緒的資源清理工作(pthread_join()本身不會清理資源)

② detached: 有時候假如不需要資源**,比如「需要重用執行緒id和其他資源」,或者「子執行緒本身執行清理資源的工作」,就不需要執行該函式,這時我們把執行緒屬性設定為detached

預設執行緒都是非分離的,我們可以使用函式設定執行緒屬性為detached:

pthread_attr_t attr;

pthread_attr_setdetachstate(&attr,pthread_create_detached);

5. 

第1章介紹

第1章介紹 儲存困難 傳輸困難 2.為什麼可以壓縮 3.資料壓縮分類 有失真壓縮 lossy 4.編解碼器 解碼器 decoder 編解碼器 codec 5.壓縮系統的組成 1 編碼器中的關鍵技術 2 編譯碼中的關鍵技術 6.編解碼器實現 數字訊號處理器dsp 軟體 編解碼器產品 編碼標準作用 高效...

第4章多執行緒

package bao9 第4章多執行緒 4.編寫乙個程式,建立兩個執行緒物件,每個執行緒輸出1 5的數。要求執行緒類分別使用繼承thread類和實現runnable介面兩種方式建立。public class demo1 extends thread implements runnable pack...

第15章 多執行緒

模擬銀行取錢的問題 1.定義乙個account類 1 該account類封裝了賬戶編號 string 和餘額 double 兩個屬性 2 設定相應屬性的getter和setter方法 3 提供無參和有兩個引數的構造器 4 系統根據賬號判斷與使用者是否匹配,需提供hashcode 和equals 方法...