我正在尝试实现一个可以使用两个 goroutine 和不同参数调用的函数。每个人都将操纵自己的字符串,他们将通过一个通道将他们的字符串发送给彼此并比较结果。这是我的尝试(Go Playground 链接):
func swap_values(str string, strChan1 chan string, strChan2 chan string, done chan bool) {
str += "test"
strChan1 <- str
<-strChan2
done <- true
}
这是僵局。对于我对该函数的两次调用,我交换了通道,因此 strChan1 是每个不同的通道。我怎样才能解决这个问题以不死锁并完成我想要的?同样,我将比较字符串并进行额外的操作,这只是获得两者的概念证明。
侃侃无极
相关分类