互斥 同步 非同步 併發 多執行緒的區別與聯絡

2021-08-14 11:14:52 字數 873 閱讀 9749

1. 併發:在作業系統中,是指乙個時間段中有幾個程式都處於已啟動執行到執行完畢之間,且這幾個程式都是在同乙個處理機上執行。其中兩種併發關係分別是同步和互斥;

2. 互斥:程序間相互排斥的使用臨界資源的現象,就叫互斥。

3. 同步:程序之間的關係不是相互排斥臨界資源的關係,而是相互依賴的關係。進一步的說明:就是前乙個程序的輸出作為後乙個程序的輸入,當第乙個程序沒有輸出時第二個程序必須等待。具有同步關係的一組併發程序相互傳送的資訊稱為訊息或事件。 

其中併發又有偽併發和真併發,偽併發是指單核處理器的併發,真併發是指多核處理器的併發。

4. 並行:在單處理器中多道程式設計系統中,程序被交替執行,表現出一種併發的外部特種;在多處理器系統中,程序不僅可以交替執行,而且可以重疊執行。在多處理器上的程式才可實現並行處理。從而可知,並行是針對多處理器而言的。並行是同時發生的多個併發事件,具有併發的含義,但併發不一定並行,也亦是說併發事件之間不一定要同一時刻發生。

5. 多執行緒:多執行緒是程式設計的邏輯層概念,它是程序中併發執行的一段**。多執行緒可以實現執行緒間的切換執行。

非同步和多執行緒並不是乙個同等關係,非同步是最終目的,多執行緒只是我們實現非同步的一種手段。非同步是當乙個呼叫請求傳送給被呼叫者,而呼叫者不用等待其結果的返回而可以做其它的事情。實現非同步可以採用多執行緒技術或則交給另外的程序來處理。

總結: 

1、非同步和同步的區別, 在io等待的時候,同步不會切走,浪費了時間。

2、如果都是獨佔cpu 的業務, 在單核情況下 多執行緒和單執行緒沒有區別。

3、 多執行緒的好處,比較容易的實現了非同步切換的思想, 因為非同步的程式很難寫的。多執行緒本身還是以同步完成,但是應該說比效率是比不上非同步的。 而且多線很容易寫, 相對效率也高。

4、多核的好處,就是可以同時做事情, 這個和單核完全不一樣的。

同步與非同步多執行緒的區別

先需要講解一下計算機的基本概念 程序 乙個程式在作業系統上執行時,占用作業系統的資源,起名叫程序。執行緒 執行緒是程式執行的最小單位,程序在執行任何乙個操作或者響應,都是由執行緒完成的,執行過程中,使用到作業系統的資源合集,就叫執行緒,程序可以包含多個執行緒或者單單乙個主線程 也稱作ui執行緒 執行...

併發 並行 同步 非同步 多執行緒的區別

多執行緒和非同步操作的異同 多執行緒和非同步操作兩者都可以達到避免呼叫執行緒阻塞的目的,從而提高軟體的可響應性。甚至有些時候我們就認為多執行緒和非同步操作是等同的概念。但是,多執行緒和非同步操作還是有一些區別的。而這些區別造成了使用多執行緒和非同步操作的時機的區別。非同步操作的本質 所有的程式最終都...

多執行緒同步與互斥

1.互斥 include include include include include pthread mutex t mutex pthread mutex initializer int lock var 0 time t end time void pthread1 void arg voi...