Skip to content

Latest commit

 

History

History
20 lines (15 loc) · 1.22 KB

File metadata and controls

20 lines (15 loc) · 1.22 KB

GO并发-协程,通道和管道

上一章我们讨论了Go系统编程,包括Go函数和与操作系统通信的技术。系统编程中,前面章节未涉及的两个领域是并发编程以及创建和管理多个线程。这两个主题将在本章和下一章中讨论。

GO提供了自己独特而新颖的方式来实现并发,这就是协程(goroutine)和通道(channels)。协程是Go程序中可独立执行的最小实体单元,而通道是协程间并发有效获取数据的方式,这允许协程间具有引用点并可以相互通信。Go中的所有内容都是使用协程执行的,这是完全合理的,因为Go是一种并发编程语言。因此,当Go程序开始执行时,单个协程调用main()函数,该函数执行实际的程序。

本章的内容和代码都比较简单,你应该可以很容易地理解它们。goroutineschannels中更高级的部分留到第10章中。

本章的主要内容如下:

  • 进程,线程和Go协程之间的区别
  • Go调度器
  • 并发与并行
  • ErlangRust中的并发模型
  • 创建Go协程
  • 创建通道
  • 从通道读取或接收数据
  • 往通道里写或发送数据
  • 创建管道
  • 等待你的Go协程结束