Go 的并发模式(上)(更新中)

square-gopher.png

并发是一种设计

  • 将您的程序设计为独立进程的集合
  • 将这些进程设计为并行运行
  • 通过设计让您的代码无论是同步还是异步结果并没有差异
golang.jpg

关注并发的细节

  • 通过独立的任务来组织您的代码
  • 确保没有 race conditions(竞争条件)
  • 确保没有 deadlocks (锁死)
  • 更多工作并发进行

Communicaing Sequential Process(CSP)

go 语言的并发模型设计是基于 CSP 设计
通信顺序过程(CSP)是一种描述交互模式的语言。CSP 的美在于他简单,只要遵循下面 3 个原则就可以实现 CSP。erlang,ocaml 等于都是基于 CSP 设计并发模型。

  • Tony Hoare 1978 源于 1978 年
  1. 在每个进程中都是顺序执行代码的
  2. 进程中通讯不是基于共享数据,而是通过传递数据开进行通讯的,没有共享状态
  3. 只要添加相同结构就可以进行扩展,便于扩展。
golang_channel.jpg

你可能感兴趣的:(Go 的并发模式(上)(更新中))