Golang中对一个变量同时读写到底需不需要保证原子性?
而互斥锁实现的操作,当前执行Goroutine是会被其它Goroutine抢占的,但是其它的Goroutine在未获取锁的情况并不能顺利执行,从而保证了并发的安全性。同样的,在未使用原子写时,可能写到一半的数据被读到,所以要保证并发的安全性,要同时保证读和写的原子性,或者使用互斥锁保证读和写之间互斥,写和写之间也互斥。在非原子读时,可能会造成:读到一半Goroutine被中断,当Goroutine再次被调度时,数据已被修改,那么最终读出来的就是一个奇怪的值。原子操作能够使用的场景很少,是有很大局限性的。