方法 | 并发原语 | 备注 |
---|---|---|
不要修改变量 | sync.Once | 不要去写变量,变量只初始化一次 |
只允许一个goroutine访问变量 | Channel | 不要通过共享变量来通信,通过通信(channel)来共享变量 |
允许多个goroutine访问变量,但是同一时间只允许一个goroutine访问 | sync.Mutex、sync.RWMutex、原子操作 | 实现锁机制,同时只有一个线程能拿到锁 |
本文来自投稿,不代表本站立场,如若转载,请注明出处:
方法 | 并发原语 | 备注 |
---|---|---|
不要修改变量 | sync.Once | 不要去写变量,变量只初始化一次 |
只允许一个goroutine访问变量 | Channel | 不要通过共享变量来通信,通过通信(channel)来共享变量 |
允许多个goroutine访问变量,但是同一时间只允许一个goroutine访问 | sync.Mutex、sync.RWMutex、原子操作 | 实现锁机制,同时只有一个线程能拿到锁 |