(原創)理解多執行緒

2022-09-01 18:09:12 字數 678 閱讀 6454

在windows平台開發上位機監控軟體,就要熟悉平台的軟硬體特點。

硬體:cpu是多核的,

軟體:所有軟體都是在windows作業系統的管理下執行。要看到小和大的關係。

因為cpu是多核的,所以在編寫c#軟體時可以進行多執行緒的程式設計,利用多核來並行執行程式。

多執行緒程式設計時,你寫的程式的每條執行緒都對同乙個變數(這種變數是公共變數,是公開的)進行讀寫,也就是多對一的關係,就涉及新的問題:執行緒同步和執行緒非同步。

執行緒同步:

所謂同步: 是指在某一時刻只有乙個執行緒可以訪問變數 。多個執行緒同時訪問同一資源,必須等乙個執行緒訪問結束,才能訪問資源,比較浪費時間,效率低 .當已經有1個執行緒在進行變數訪問的過程時,其他執行緒也想訪問這個變數,但是不能訪問,只能等待,等到進行中的執行緒結束才有機會訪問。

執行緒安全:同步了執行緒就會安全。有了同步就不擔心出錯。執行緒如果不涉及到操作公共變數的時候就不要同步,否則就需要同步才能保證執行緒安全。

同步的好處與弊端

好處:解決了執行緒的安全問題。

弊端:每次都有判斷鎖,降低了效率。

但是在安全與效率之間,首先考慮的是安全。

執行緒非同步:

訪問資源時在空閒等待時可以同時訪問其他資源,實現多執行緒機制。

多執行緒 理解多執行緒(一)

程序 程序是cpu分配資源的基本單位 執行緒 執行緒是cpu排程的基本單位 資源分配給程序,所有執行緒共享該程序的資源 當執行緒數大於cpu的數量,會出現時間片的輪詢。cpu時間片是直接分配給執行緒的,執行緒拿到cpu時間片就能執行了 cpu時間片不是先分給程序然後再由程序分給程序下的執行緒的。所有...

多執行緒理解

本文介紹我對於多執行緒的理解。一 概念 1.作業系統下的多程序場景 但其實上面的情景是屬於作業系統下的多程序,不是單個程式內的多程序,這種多程序跟我們在單個程式內的多執行緒沒有什麼可以比較的。2.執行緒 舉個最簡單例子 我們的任務需要兩個計算型操作 a b 每個操作耗時10秒,如果是單執行緒,這時我...

多執行緒理解

單核cpu 單執行緒與多執行緒 執行時都是併發操作 a.執行條件 無io等操作,時間大小 多執行緒 單執行緒,原因 多執行緒執行時執行緒切換耗時間 b.執行條件 有io等操作,時間大小 單執行緒 多執行緒,原因 單執行緒要等待io的操作時間,從而加長時間 單核多執行緒的作用 在b中展現出優點。多核c...