【发布时间】:2014-10-24 06:08:47
【问题描述】:
我遇到了这样的数据竞争
WARNING: DATA RACE
11652 Read by goroutine 14:
11653 runtime.chansend()
11654 /usr/local/go/src/pkg/runtime/chan.c:155 +0x0
...
11657
11658 Previous write by goroutine 13:
11659 runtime.closechan()
11660 /usr/local/go/src/pkg/runtime/chan.c:1232 +0x0
...
频道有锁,为什么会出现数据竞争?
【问题讨论】:
-
我看到两个不同的例程,一个是发送,一个是关闭。最明显的是数据竞赛。你说频道有锁是什么意思?你会显示相关代码吗?
-
使用相同通道的不同 goroutine 不应该有数据竞争。频道已锁定其工具。
-
您需要提供更多代码。
-
请提供导致数据争用的代码。没有您的代码,很难回答有关您的代码的问题。