Go面试之并发安全的map并发安全的map 在上一个总结中我们知道map是引用类型的,并且是非线程安全的。这个时候杠精面试官问,我就是要使用Go提供的原生map,你怎么来保证这个map是线程安全的呢? 众所周知Go中有提供线程安全的map,那就是标准包里的sync.Map类型。那面试官要使用原生map,那他到底想从你这面获取什么呢?我们来思考这个问题。 怎么保证线程安全的原生m...码说256大约 3 分钟golanggogolangmap并发安全源码面试面试总结
Go面试之sync.Mutex和sync.RWMutex在上一个总结中我们在实现线程安全的map的时候用到了锁的概念,面试官听到这个锁的实现方法之后双眼冒光,开始了新一轮的攻势。问:互斥锁和读写锁有啥区别? sync.Mutex互斥锁 Go中标准包提供sync.Mutex类型实现mutex(排他锁、互斥锁)。定义:sync.Mutex提供两个方法,Lock()方法获取锁,UnLock()释放锁。一旦被锁住,...码说256大约 5 分钟golanggogolangmutex并发安全源码面试面试总结
Go面试之Channel的使用channel channel是Golang在语言层面提供的goroutine间的通信方式。channel 是一个通道,用于端到端的数据传输,这有点像我们平常使用的消息队列,只不过 channel 的发送方和接受方是 goroutine 对象,属于内存级别的通信。 这里涉及到了 goroutine 概念,goroutine 是轻量级的协程,有属于自己的...码说256大约 10 分钟golanggogolangchannel并发安全源码面试面试总结