Go CSP模型

Posted vincenshen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go 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模型的主要内容,如果未能解决你的问题,请参考以下文章

Go_CSP并发模型

Go语言的CSP模型

Go语言的CSP模型

Go的CSP并发模型实现:M, P, G

Actor模型和CSP模型的区别

go语言--通道