關於程序和執行緒的抽象理解

2021-09-25 18:57:52 字數 792 閱讀 4833

一:名詞解釋

程序:process

執行緒:thread

cpu:計算機的核心和大腦,主要用來取指--解碼--執行操作

1、抽象理解cpu為乙個工廠,工廠的生產能力有限(受硬體和系統限制),一次只能提供乙個車間使用,單核cpu就只能執行單個任務

2、程序就好比工廠的車間,每個車間完成不同的任務

3、執行緒就好比車間的工人,乙個車間可以有單個工人,也可以有多個工人協同完成乙個任務。所以乙個程序可以包含多個執行緒

4、車間中的空間是工人共享的,象徵著程序中的記憶體是共享的,每個執行緒都可以使用這些記憶體;

5、每個房間的大小不同,有些只能供乙個人使用,比如廁所,只能滿足乙個人使用時,另外的人等待。這就意味著,乙個執行緒使用某些共享記憶體的時候,其他執行緒處於執行緒等待狀態;

6、防止廁所被他人進入的辦法,就是關門上鎖。先到的人使用,並上鎖,後面的人等鎖開啟後才能進入,這叫「互斥鎖」(mutual exclusion),也叫mutex防止多個執行緒同時讀寫某一塊記憶體區域;

7、還有些房間,可以同時容納n個人使用,比如廚房,可以滿足固定n個人同時協同使用,多出來的人進行等待。就像一塊記憶體,只能供給固定數目的執行緒使用;

8、為防止執行緒過多導致流水線擁堵,解決辦法就是門口掛n把鑰匙,進去的人取走一把,出來再放回原處,後來的人發現門口沒有鑰匙,就進行等待,這個就叫「訊號量」(semaphore);用來保證多個執行緒不會互相衝突;可以看出mutex是特殊的一種semaphore,但是效率更高,如果在保證單獨使用資源的時候,可以使用這種設計(廁所)

9、乙個車間多個工人共同完成乙個生產,相當於乙個程序的多個執行緒協同完成;

程序與執行緒(抽象理解)

1.計算機的核心是cpu,它承擔了所有的計算任務。它就像一座工廠,時刻在執行。2.假定工廠的電力有限,一次只能供給乙個車間使用。也就是說,乙個車間開工的時候,其他車間都必須停工。背後的含義就是,單個cpu一次只能執行乙個任務。3.程序就好比工廠的車間,它代表cpu所能處理的單個任務。任一時刻,cpu...

理解程序和執行緒

很多同學都聽說過,現代作業系統比如mac os x,unix,linux,windows等,都是支援 多工 的作業系統。什麼叫 多工 呢?簡單地說,就是作業系統可以同時執行多個任務。打個比方,你一邊在用瀏覽器上網,一邊在聽 一邊在用word趕作業,這就是多工,至少同時有3個任務正在執行。還有很多任務...

關於程序和執行緒

什麼是程序。最直觀的就是乙個個 pid,官方的說法就 程序是程式在計算機上的一次執行活動。執行緒是可執行 的可分派單元。這個名稱 於 執行的線索 的概念。在基於執行緒的多工的環境中,所有程序有至少乙個執行緒,但是它們可以具有多個任務。這意味著單個程式可以併發執行兩個或者多個任務。1.概念 程序 正在...