在之前需要了解一些知识
1、关于chan
Golang 关于通道 Chan 详解
这篇文章十分清晰地讲解了chan的相关概念,配合goroutine 举了一些例子让我们明白chan的缓冲区,缓冲机制,阻塞机制,子线程和主线程的关联,很好
2、select语句
Go 语言 select 语句基本用法
大意就是像switch一样拥有选择语句的功能,同时可以随机的在以执行的子选项内挑选对象执行,如果没有要么运行default,没有default就会阻塞,直到某个可以运行。
3、并发编程基础
Go并发编程基础(译)
这一篇文章很具体,也比较深入,先是以线程goroutine举例为引,告诉我们一般来说,通过睡眠的方式来编排线程之间相互等待是不太可能的,从而引出同步机制 - 管道,来一个goroutine等待另一个goroutine。
紧接着就介绍了管道channel,告诉我们如何关闭管道(close),如何用range和for读取发往管道的值
如何用空结构体的管道起到发送信号的作用
再然后深入概念,介绍了死锁和数据竞争,从而引出如何解决这类问题的互斥锁 - sync.Mutex。
最后引入select概念,并举了一个综合的实例,如果按以上顺序看完的确会有很大帮助
go语言并发编程
最新推荐文章于 2024-09-20 16:06:47 发布