go语言中的原子操作

来源:10-1 goroutine

qq_白澤_0

2020-06-08

课外接触到一些atomic/mutex的问题。大多数提倡atomic锁取代mutex。
对原子操作本身不是很理解,atomic主要是用在goroutine中防止被打断的值操作?
是不是一般在goroutine内修改外数值都用原子操作?

写回答

1回答

ccmouse

2020-06-10

atomic的确用在防止值操作被打断,保证其原子性。

关于使用atomic还是需要具体问题来分析,不过大体来说,提倡用goroutine和channel来解决并发问题,而不是atomic/mutex。而atomic/mutex之间的应用场景不同,atomic的场景很局限,http://docscn.studygolang.com/pkg/sync/atomic/ 

我们可以看一下atomic的文档,能用到这里面的函数解决的,那最好,我们就不考虑mutex。如果不能,或者不是直接用atomic解决,而是要用一堆atomic操作,涉及很多变量,才能完成的并发任务,就考虑mutex

0
1
qq_白澤_0
非常感谢!
2020-06-17
共1条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程