高併發編程-01-併發編程的發展歷史

其實,在早期計算機並沒有包含操作系統,這個時候,這個計算機只跑一個程序,這個程序獨享計算機的所有資源,這個時候不存在什麼併發問題,但是對計算機的資源來說,確實是一種浪費。

於是,操作系統出現了,操作系統改變了這種現狀,讓計算機可以運行多個程序,並且不同的程序佔用獨立的計算機資源,如內存,CPU等。

操作系統的出現,主要有以下幾點原因:
1,資源利用率:可以在其他程序執行過程出現等待的時候,去執行其他程序,從而提高程序
的利用率。什麼時候會出現等待,比如輸入操作或輸出操作。
2,公平性:所有的程序可以共享計算機資源,一種有效的方式是通過時間片的方式來讓程序共享計算機資源。
3,在編寫多任務程序時,可以一個程序執行一個任務,必要時,程序之間進行通信即可。

當計算機從單程序變成多程序之後,這個時候又發展出了多線程,線程是進程裏面的每個執行控制流,或叫執行路線。如果沒有明確的協同機制,那麼每個線程將獨立運行,共享着進程的內存及CPU資源等等。

多線程的運行模式,給我們帶來了什麼好處?
發揮現代CPU的特性,提高吞吐率

早期大家應該聽說過摩爾定律,但隨着CPU通過提高時鐘頻率來提升性能已變得越來越困難,處理器的產商,比如因特爾,AMD,都開始在單個芯片上放置多個處理器核,所以我們現在的個人計算機基本都是這種架構。

現代計算機的調度單位是線程,所以假設你的電腦是一個4核處理器,當你的程序只有一個線程在運行的時候,那這個時候就會有75%的CPU資源無法使用,這簡直是一種浪費。
使用多線程就是爲了讓系統有更高的吞吐率。比如當程序等待某個同步IO完成操作時,這個時候,CPU處理器處於空閒狀態,如果程序是單線程的,那麼只能等待,再進行下一步操作,反之,就可以併發進行。舉個生活的例子,老婆讓我洗碗,我又想看NBA,那怎麼辦,很簡單,我可以一邊洗碗,一邊看NBA,而不用等到洗完碗,再去看NBA

總結下,發展的歷程

單進程計算機------->多進程的計算機(操作系統)------>多線程的計算機(提高CPU的利用率,簡化開發模式)

生活中的案例,我們接觸的軟件,都有多線程的影子,大家不妨可以想想都有哪些?


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章