併發、並行、同步、異步、多線程的區別?

併發:同一時間段有幾個程序都處於已經啓動到運行完畢之間,而且這幾個程序都在同一個處理機上運行,併發的兩種關係是同步和互斥;多線程


互斥:進程之間訪問臨界資源時相互排斥的現象;併發


同步:進程之間存在依賴關係,一個進程結束的輸出做爲另外一個進程的輸入。具備同步關係的一組併發進程之間發送的信息稱爲消息或者事件;異步


並行:單處理器中進程被交替執行,表現出一種併發的外部特徵;在多處理器中,進程能夠交替執行,還能重疊執行,實現並行處理,並行就是同事發生的多個併發事件,具備併發的含義,但併發不必定是並行,也就是說事件之間不必定要同一時刻發生;線程


多線程:多線程是進程中併發運行的一段代碼,可以實現線程之間的切換執行;進程


異步:和同步相對,同步是順序執行,而異步是彼此獨立,在等待某個事件的過程當中繼續作本身的事,不要等待這一事件完成後再工做。線程是實現異步的一個方式,異步是讓調用方法的主線程不須要同步等待另外一個線程的完成,從而讓主線程幹其餘事情。事件


異步和多線程:不是同等關係,異步是目的,多線程只是實現異步的一個手段,實現異步能夠採用多線程技術或者交給其餘進程來處理。資源

相關文章
相關標籤/搜索