读写结构体数据数据互斥访问问题

guichun68 · · 781 次点击
那该如何解决呢,我加了个无缓冲的通道,在Add函数的defer中给通道追加了1,然后在读数据的for循环中从通道取出数据,成功取出则查询之,怎么还是读到-1呢。
#2
更多评论
你添加的时候用的goroutine,读的时候也用的goroutine,你根本没有等他全部写进去再去读,所以读的时候偶尔有几个-1。简单来说,你没有等他写完就去读了,所以没读到。
#1
waitgroup 。等add goroutine 全部执行完之后,再去读
#3