####本文介紹我對於多執行緒的理解。
####一、概念
1. 作業系統下的多程序場景
但其實上面的情景是屬於作業系統下的多程序,不是單個程式內的多程序,這種多程序跟我們在單個程式內的多執行緒沒有什麼可以比較的。
2. 執行緒
舉個最簡單例子:
我們的任務需要兩個計算型操作:
a()
b()
每個操作耗時10秒,如果是單執行緒,這時我們的任務需要20秒。
執行緒a:a()
執行緒b:b()
如果是多核情況下使用多執行緒,不同的執行緒就被分到不同的cpu上進行處理,我們的任務需要10秒完成。
####二、引入多執行緒的目的
####1.提高執行效率
就如上面提到的,引入多執行緒可以提高程式執行效率,合理利用cpu資源。但是如果是在單核cpu中,多執行緒就沒有用了嗎?
並不是。這就是引入多執行緒的第二個目的了。
####2.防止阻塞
同樣如果我們使用單執行緒執行乙個任務,如果碰到i/o操作,後面的任務就要被阻塞,這時候cpu就處於空閒狀態。
如果是多執行緒的情況,就可以各自執行不同的操作,即使i/o阻塞,也不會影響另乙個執行緒中的cpu計算操作。
多執行緒 理解多執行緒(一)
程序 程序是cpu分配資源的基本單位 執行緒 執行緒是cpu排程的基本單位 資源分配給程序,所有執行緒共享該程序的資源 當執行緒數大於cpu的數量,會出現時間片的輪詢。cpu時間片是直接分配給執行緒的,執行緒拿到cpu時間片就能執行了 cpu時間片不是先分給程序然後再由程序分給程序下的執行緒的。所有...
多執行緒理解
單核cpu 單執行緒與多執行緒 執行時都是併發操作 a.執行條件 無io等操作,時間大小 多執行緒 單執行緒,原因 多執行緒執行時執行緒切換耗時間 b.執行條件 有io等操作,時間大小 單執行緒 多執行緒,原因 單執行緒要等待io的操作時間,從而加長時間 單核多執行緒的作用 在b中展現出優點。多核c...
多執行緒初步理解
題目 某銀行有至多三個視窗提供服務。該銀行每天至多服務100人次 初始時,只有乙個視窗開放,如果等待人數超過兩人 包含正在辦理業務的人 才開放下乙個視窗。這個小小的問題裡面包含幾個關鍵點 顯然三個視窗可以用三個執行緒來做,那麼如何得到三個執行緒服務的總人數?涉及到多執行緒資料同步問題。100人次可能...