程序 執行緒 同步 非同步 阻塞 非阻塞

2022-09-16 02:45:10 字數 1048 閱讀 9247

1.程序和執行緒

(1)程序(process):

是windows系統中的重要概念,它包含著乙個執行程式所需要的資源;乙個正在執行的應用程式在作業系統中被視為乙個程序(程序可以包含乙個或多個執行緒);程序和程序之間是相互獨立的,乙個程序無法訪問另外乙個程序的資料

(2)執行緒(thread):

是程序中的基本執行單位,乙個程序可以包含若干個執行緒,在程序入口執行的第乙個執行緒被稱為這個程序的主線程

程序和執行緒的區別:主要區別是它們是不同作業系統資源管理方式;

乙個程式至少有乙個程序,乙個程序至少有乙個執行緒

程序有獨立的位址空間,乙個程序崩潰後,在保護模式下不會對其他程序產生影響,而執行緒只是乙個程序中的不同執行路徑

執行緒不能夠獨立執行,必須依託於應用程式,由應用程式提供多個執行緒執行控制

2.同步和非同步的區別

(1)同步:當乙個同步呼叫發出去後,呼叫者需要一直等待呼叫的結果通知,才能進行後續的執行;

(2)非同步:當乙個同步呼叫發出後,呼叫者不必一直等待呼叫返回的結果;

兩種方式:

1.主動輪詢非同步呼叫的結果

2.被呼叫方通過callback**通知,來通知呼叫方呼叫結果

3.阻塞和非阻塞

阻塞和非阻塞的重點是在於進/執行緒等待訊息的行為,也就是在等地等訊息的時候,當進/執行緒是掛起狀態,還是非掛起狀態

(1)阻塞:呼叫在發出去之後,在訊息返回之前,當進/執行緒會被掛起,直到有訊息返回,當前的進/執行緒才會被啟用

(2)非阻塞:呼叫在發出去後,不會阻塞當前進/執行緒,而會立即返回

同步和非同步,重點在於訊息通知的方式;阻塞和非阻塞,重點在於等訊息時候的行為。

四種組合方式(老王燒水的例子):

同步阻塞:老王用水壺燒水,並且站在那裡等著,啥都不幹,每隔一定時間看水開沒開;

同步非阻塞:老王用水壺燒水,跑回屋裡玩遊戲,但是還會每隔一段時間過來看看水開沒開,水沒開就回去

非同步阻塞:老王這次使用響水壺燒水,站在那裡啥都不幹,但是不會再每隔一段時間去看水開,而是等水開了,水壺會自動通知他

非同步非阻塞:老王使用響水壺燒水,跑回屋裡玩遊戲,等著水壺響了通知他

程序 執行緒 同步非同步 阻塞非阻塞

2015 08 19 15 23 38 週三 執行緒執行緒安全 如果你的 所在的程序中有多個執行緒在同時執行,而這些執行緒可能會同時執行這段 執行緒安全問題都是由全域性變數及靜態變數引起的 若每個執行緒中對全域性變數 靜態變數只有讀操作,而無寫操作,一般來說,這個全域性變數是執行緒安全的 若有多個執...

併發,同步,非同步,阻塞,非阻塞,執行緒

乙個cpu沒有真正意義的併發,兩個人同時做同樣的事情才是真正意義上的併發,只有統籌分時處理.多路同步 同步,實時處理並且活動按順序執行 非同步,乙個人合理的安排時間來做事情,分時處理,活動分段執行,非順序執行 阻塞模式,等,同步,併發,非同步都有可能會阻塞,只是機率的大小 非阻塞模式 不等 併發,併...

阻塞,非阻塞,非同步,同步

之前一直對這個概念理不太清楚,今天看到一篇文章感覺不錯 本文 老張愛喝茶,廢話不說,煮開水。出場人物 老張,水壺兩把 普通 水壺,簡稱水壺 會響的水壺,簡稱響水壺 1 老張把水壺放到火上,立等水開。同步阻塞 老張覺得自己有點傻 2 老張把水壺放到火上,去客廳看電視,時不時去廚房看看水開沒有。同步非阻...