Go 的并發(fā)模式(上)(更新中)

square-gopher.png

并發(fā)是一種設(shè)計

  • 將您的程序設(shè)計為獨立進程的集合
  • 將這些進程設(shè)計為并行運行
  • 通過設(shè)計讓您的代碼無論是同步還是異步結(jié)果并沒有差異
golang.jpg

關(guān)注并發(fā)的細節(jié)

  • 通過獨立的任務(wù)來組織您的代碼
  • 確保沒有 race conditions(競爭條件)
  • 確保沒有 deadlocks (鎖死)
  • 更多工作并發(fā)進行

Communicaing Sequential Process(CSP)

go 語言的并發(fā)模型設(shè)計是基于 CSP 設(shè)計
通信順序過程(CSP)是一種描述交互模式的語言。CSP 的美在于他簡單,只要遵循下面 3 個原則就可以實現(xiàn) CSP。erlang,ocaml 等于都是基于 CSP 設(shè)計并發(fā)模型。

  • Tony Hoare 1978 源于 1978 年
  1. 在每個進程中都是順序執(zhí)行代碼的
  2. 進程中通訊不是基于共享數(shù)據(jù),而是通過傳遞數(shù)據(jù)開進行通訊的,沒有共享狀態(tài)
  3. 只要添加相同結(jié)構(gòu)就可以進行擴展,便于擴展。
golang_channel.jpg
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 特別說明,為便于查閱,文章轉(zhuǎn)自https://github.com/getify/You-Dont-Know-JS...
    殺破狼real閱讀 250評論 0 0
  • 官方中文版原文鏈接 感謝社區(qū)中各位的大力支持,譯者再次奉上一點點福利:阿里云產(chǎn)品券,享受所有官網(wǎng)優(yōu)惠,并抽取幸運大...
    HetfieldJoe閱讀 1,433評論 0 12
  • GoLang并發(fā)控制(上) 在go程序中,最被人所熟知的便是并發(fā)特性,一方面有g(shù)oroutine這類二級線程,對這...
    不喜歡夜雨天閱讀 3,715評論 0 8
  • 必備的理論基礎(chǔ) 1.操作系統(tǒng)作用: 隱藏丑陋復(fù)雜的硬件接口,提供良好的抽象接口。 管理調(diào)度進程,并將多個進程對硬件...
    drfung閱讀 3,746評論 0 5
  • 關(guān)于顏色透明度,rgba background:transparent;---純透明 opacity,filter...
    一包閱讀 117評論 0 0

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