英文:
is len(channel) in Go thread-safe?
问题
一个通道可以被多个 Go 协程同时使用。在某些 Go 协程中使用 len(channel) 来获取通道的长度是否是线程安全的?
英文:
A channel can potentially be used by multiple Go routines. Is getting the length of the channel by using len(channel) from some of the Go routines thread-safe?
答案1
得分: 5
这有点取决于你的使用情况。
虽然调用是安全的,但当其他goroutine从该通道发送/接收数据时,结果就无法被信任。
英文:
It kind of depends on your use case
it is indeed safe to call, but the result cannot be trusted when other goroutines are sending / taking from that channel
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论