天天看點

還不懂高并發系統該如何設計嗎?今天開始給大家開啟新的系列《高并發系統架構》。首先先講一些基礎的概念,并行和并發的差別:·

作者:尚矽谷一手店

還不懂高并發系統該如何設計嗎?今天開始給大家開啟新的系列《高并發系統架構》。

首先先講一些基礎的概念,并行和并發的差別:

·單核單線程,假設開啟了一個線程準備執行任務,此時有1個cpu核心可供線程使用,這個線程正常執行時就可以描述為:并發量為1(線程數)。

·并行執行也是1(CPU處理數)。單線程多核心,如果還是單個線程執行,此時可能CPU核心為2,當然也能正常運作。可此時有了一個核心空閑,下來了多線程多核心。

為了提升硬體資源使用率,通常會開啟和核心數相等的線程數,此時可以描述為:并發量2(線程數)。

·并行執行2(CPU處理數)。如果在此基礎上繼續增加核心數,便會出現執行等待或争奪cpu使用權的情況。為什麼是等待和争奪?沒一回事。劃重點,1個在實體上存在的cpu核心,在同一時間内隻能執行一個線程的任務,如果正在執行的任務耗時比較長,cpu會利用時間片輪轉和上下文切換機制,讓單核cpu在多個線程之間内切換執行。由于是多個線程共享一個cpo,執行效率肯定會變差,也就是說不會有兩個任務在一個cpu 上同時執行。

講到這裡,你了解并發和并行的差別了嗎?明白!最後總結一下,在單機中,并行指的是同時執行的線程數,并發指的是一個時間視窗内,需要同時處理的線程數。再記兩個單詞:并行,parallel ['paerelel ],custom[kan'k3:rent]。在分布式系統中并行和并發的概念和單機一樣,後面還會詳細給大家講解。

我是尚矽谷的一明哥,點贊關注收藏!這次一定要點贊評論關注哦!

還不懂高并發系統該如何設計嗎?今天開始給大家開啟新的系列《高并發系統架構》。首先先講一些基礎的概念,并行和并發的差別:·
還不懂高并發系統該如何設計嗎?今天開始給大家開啟新的系列《高并發系統架構》。首先先講一些基礎的概念,并行和并發的差別:·
還不懂高并發系統該如何設計嗎?今天開始給大家開啟新的系列《高并發系統架構》。首先先講一些基礎的概念,并行和并發的差別:·
還不懂高并發系統該如何設計嗎?今天開始給大家開啟新的系列《高并發系統架構》。首先先講一些基礎的概念,并行和并發的差別:·

繼續閱讀