乙個cpu沒有真正意義的併發,兩個人同時做同樣的事情才是真正意義上的併發,只有統籌分時處理.多路同步
同步,實時處理並且活動按順序執行
非同步,乙個人合理的安排時間來做事情,分時處理,活動分段執行,非順序執行
阻塞模式,等,同步,併發,非同步都有可能會阻塞,只是機率的大小
非阻塞模式 不等
併發,併發都是使用執行緒,
執行緒執行緒的溝通有:主線程->副執行緒,主線程<-副執行緒
**(副調主)
輪詢調(主調副)
通知(副調主,通過中間人方式)
乙個執行緒就是乙個場景
c#執行緒參考手冊
執行緒的目的是任務的分解執行,
分開執行,提高資源的利用率,減少總任務的時間(提高系統響應時間)
任務的協同(同步),管理,資源的組織分配問題,不要問題分配不好而產生打架問題(死鎖)
就是多人幹比乙個人幹好點
其實任務的生命週期圖就是執行緒的生命週期:
幹中,準備幹,暫停(掛起(指揮系統呼叫),sleep,自已呼叫)
其實單核cpu因為只有乙個指揮系統,沒有真正的並行,只能非同步,統籌分時處理.多路同步
******************************
事件:當某某的條件滿足時,發生的動作稱為事件,
事件按引發的條件源不同分為四種:
更改事件(由狀態發生變化所引發的動作)
時間事件(時間因子作為事件的源)
訊號(訊息)
呼叫(主動呼叫)
如果說override是縱向的,向下的擴充套件方式(偶合緊),那麼事件可以說是一種橫向的擴充套件方式(偶合松一些),
程序間的協議通訊是分布式的(偶合最松)
如果說狀態是由於執行了某某動作,而引用屬性值發生變化,狀態機,方法->字段
那麼事件一般是當屬性滿足某某的時,將會發生的動作方法,欄位->方法
單播delegate,多播mutidelegate都事件的傳播方式(向外擴充套件,靈活),event是多播固化方式
同步非同步?阻塞非阻塞?併發並行?
阻塞呼叫是指呼叫結果返回之前,呼叫者會進入阻塞狀態等待。只有在得到結果之後才會返回。非阻塞呼叫是指在不能立刻得到結果之前,該函式不會阻塞當前執行緒,而會立刻返回。同步 在發出乙個同步呼叫時,在沒有得到結果之前,該呼叫就不返回。非同步 在發出乙個非同步呼叫後,呼叫者不會立刻得到結果,該呼叫就返回了。同...
併發 並行,阻塞 非阻塞,同步 非同步
1.阻塞,非阻塞 乙個執行緒 程序經歷的5個狀態,建立,就緒,執行,阻塞,終止。各個狀態的轉換條件如上圖,其中有個阻塞狀態,就是說當執行緒中呼叫某個函式,需要io請求,或者暫時得不到競爭資源的,作業系統會把該執行緒阻塞起來,避免浪費cpu資源,等到得到了資源,再變成就緒狀態,等待cpu排程執行。定義...
同步 非同步 阻塞 非阻塞 併發 並行
同步和非同步關注的是訊息通訊機制 synchronous communication asynchronous communication 所謂同步,就是在發出乙個呼叫時,在沒有得到結果之前,該呼叫就不返回。但是一旦呼叫返回,就得到返回值了。換句話說,就是由呼叫者主動等待這個呼叫的結果。而非同步則是...