并发相关-CSP

  • Communicating Sequential Processes
  • 通信顺序进程,又翻译为交换消息的顺序程序,用来描述并发性系统的交互模式

CSP有以下三个特点:

1.每个程序是为了顺序执行而创建的
2.数据通过管道来通信,而不是通过共享内存
3.通过增加相同的程序来扩容
// Golang的并发模型基于CSP理论,Golang并发的口号是:不用通过共享内存来通信,而是通过通信来共享内存

Golang并发模式支持并发的元素集:

goroutines
channels
select
sync package
// 其中goroutines,channels和select 对应于实现CSP理论,即通过通信来共享内存
// 这几乎能解决Golang并发的90%问题,另外的10%场景需要通过同步原语来解决,即sync包相关的结构