
Go_原子操作和锁
当多个协程进行资源竞争的时候,在一个协程获取到锁的时候,其余的协程进入阻塞态,等待资源释放。当该协程运行结束后,调度系统将阻塞队列其中的一个协程拿出来去获取锁,这其中涉及到切换上下文操作,需要消耗一定资源时间。当多个goroutine在没有相互同步的情况下,访问某个共享的资源,同时对该资源进行读写时,就会处于相互竞争的状态,这就是并发中的资源竞争。第一个人使用前先将门锁上,以防外面的人进来,结束后,再把门锁打开,然后第二个人在锁门,上厕所,开锁。如上图,i++可以分为三个操作,这三个操作均为原子操作。















