1. 程式人生 > >Go CSP模型

Go CSP模型

mod ica 執行 發送 csp 並發模型 順序 進行 阻塞

CSP 是 Communicating Sequential Process 的簡稱,中文可以叫做通信順序進程,是一種並發編程模型,由 Tony Hoare 於 1977 年提出。簡單來說,CSP 模型由並發執行的實體(線程或者進程)所組成,實體之間通過發送消息進行通信,這裏發送消息時使用的就是通道,或者叫 channel。CSP 模型的關鍵是關註 channel,而不關註發送消息的實體。Go 語言實現了 CSP 部分理論,goroutine 對應 CSP 中並發執行的實體,channel 也就對應著 CSP 中的 channel。 也就是說,CSP 描述這樣一種並發模型:多個Process 使用一個 Channel 進行通信, 這個 Channel 連結的 Process 通常是匿名的,消息傳遞通常是同步的(有別於 Actor Model)。

Channel

channel可以理解為管道,它的主要功能是:

  1. 隊列存儲數據
  2. 阻塞和喚醒goroutine

Go CSP模型