并发入门

Go 是并发式语言,而不是并行式语言。在讨论 Go 如何处理并发之前,我们必须理解何为并发,以及并发与并行的区别。

1 并发:同一时间段内,多个任务在执行(单个cpu,执行多个任务)
2 并行:同一时刻,多个任务在执行(多个cpu的支持)

 

并发是什么?

并发是指立即处理多个任务的能力。一个例子就能很好地说明这一点。

我们可以想象一个人正在跑步。假如在他晨跑时,鞋带突然松了。于是他停下来,系一下鞋带,接下来继续跑。
这个例子就是典型的并发。这个人能够一下搞定跑步和系鞋带两件事,即立即处理多个任务。

 

并行是什么?并行和并发有何区别?

并行是指同时处理多个任务。这听起来和并发差不多,但其实完全不同。

我们同样用这个跑步的例子来帮助理解。假如这个人在慢跑时,还在用他的 iPod 听着音乐。在这里,他是在跑步的同时听音乐,也就是同时处理多个任务。这称之为并行。

 

Go 对并发的支持

Go 编程语言原生支持并发。Go 使用 Go 协程(Goroutine) 和信道(Channel)来处理并发。

 

posted @ 2021-06-15 19:01  Palpitate~  阅读(40)  评论(0编辑  收藏  举报