Golang并发:再也不愁选channel还是选锁

2019-01-14
阅读 4 分钟
28.8k
周末又到了,为大家准备了一份实用干货:如何使用channel和Mutex解决并发问题,利用周末的好时光,配上音乐,思考一下吧🤔。 来,问自己个问题:面对并发问题,是用channel解决,还是用Mutex解决? 如果自己心里还没有清晰的答案,那就读下这篇文章,你会了解到: 使用channel解决并发问题的核心思路和示例 channel擅长解...

Golang并发:除了channel,你还有其他选择

2019-01-05
阅读 6 分钟
8.5k
我们都知道Golang并发优选channel,但channel不是万能的,Golang为我们提供了另一种选择:sync。通过这篇文章,你会了解sync包最基础、最常用的方法,至于sync和channel之争留给下一篇文章。

轻松检测Golang并发的数据竞争

2018-11-15
阅读 2 分钟
9.1k
Golang中我们使用Channel或者sync.Mutex等锁保护数据,有没有一种机制可以检测代码中的数据竞争呢? 背景知识数据竞争是并发情况下,存在多线程/协程读写相同数据的情况,必须存在至少一方写。另外,全是读的情况下是不存在数据竞争的。 使用race检测数据竞争 go build有个标记race可以帮助检测代码中的数据竞争。 {代码...