mutex的作用
来源:12-13 实现Connection

weixin_慕沐2155417
2022-09-13
一个conn对应一个协程,该协程的connection维护一个用户连接,所以应该不会有多协程并发写的问题吧
所以write函数加锁的必要性还是不太理解,老师能详细解释一下吗?
type Connection struct {
conn net.Conn
waitingReply wait.Wait
mu sync.Mutex
selectedDB int
}
func (c *Connection) Write(bytes []byte) error {
if len(bytes) == 0 {
return nil
}
c.mu.Lock()
c.waitingReply.Add(1)
defer func() {
c.waitingReply.Done()
c.mu.Unlock()
}()
_, err := c.conn.Write(bytes)
return err
}
写回答
1回答
-
Moody
2022-09-14
当时加这段确实是做的比较保守,预防了一下。
00
相似问题