Go語言并發(fā)編程概述

1 并行和并發(fā)
并行(parallel):指在同一時刻,有多條指令在多個處理器上同時執(zhí)行。

并發(fā)(concurrency):指在同一時刻只能有一條指令執(zhí)行,但多個進程指令被快速的輪換執(zhí)行,使得在宏觀上具有多個進程同時執(zhí)行的效果,但在微觀上并不是同時執(zhí)行的,只是把時間分成若干段,使多個進程快速交替的執(zhí)行。

并行是兩個隊列同時使用兩臺咖啡機
并發(fā)是兩個隊列交替使用一臺咖啡機

2 Go語言并發(fā)優(yōu)勢
有人把Go比作21世紀的C語言,第一是因為Go語言設計簡單,第二,21世紀最重要的就是并行程序設計,而Go從語言層面就支持了并行。同時,并發(fā)程序的內(nèi)存管理有時候是非常復雜的,而Go語言提供了自動垃圾回收機制。

Go語言為并發(fā)編程而內(nèi)置的上層API基于CSP(communicating sequential processes, 順序通信進程)模型。這就意味著顯式鎖都是可以避免的,因為Go語言通過相冊安全的通道發(fā)送和接受數(shù)據(jù)以實現(xiàn)同步,這大大地簡化了并發(fā)程序的編寫。

一般情況下,一個普通的桌面計算機跑十幾二十個線程就有點負載過大了,但是同樣這臺機器卻可以輕松地讓成百上千甚至過萬個goroutine進行資源競爭。

3 參考資料
1)https://www.zhihu.com/question/33515481
2)Go語言程序設計(programming in go):https://pan.baidu.com/s/1dGgM7jb

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 操作系統(tǒng)概論 操作系統(tǒng)的概念 操作系統(tǒng)是指控制和管理計算機的軟硬件資源,并合理的組織調(diào)度計算機的工作和資源的分配,...
    野狗子嗷嗷嗷閱讀 12,487評論 3 34
  • 必備的理論基礎 1.操作系統(tǒng)作用: 隱藏丑陋復雜的硬件接口,提供良好的抽象接口。 管理調(diào)度進程,并將多個進程對硬件...
    drfung閱讀 3,776評論 0 5
  • 1. 基礎知識 1.1、 基本概念、 功能 馮諾伊曼體系結構1、計算機處理的數(shù)據(jù)和指令一律用二進制數(shù)表示2、順序執(zhí)...
    yunpiao閱讀 5,814評論 1 22
  • iOS多線程編程 基本知識 1. 進程(process) 進程是指在系統(tǒng)中正在運行的一個應用程序,就是一段程序的執(zhí)...
    陵無山閱讀 6,364評論 1 14
  • 特別的是付出的感情 和我們愛過的人 如果一生沒有好好愛過 始終是遺憾吧 愛你
    思思有片海閱讀 205評論 0 0

友情鏈接更多精彩內(nèi)容