なぜこれがデッドロックであるのかわからないのは初めてですか?私はメインgoroutingがdoSomething
関数内のチャネルに複数回の書き込みしようとしているこれがゴランのデッドロックなのはなぜか分かりませんか?
func doSomething(c chan<- string){ // recursive function does something
c <- result
return dosomething(c) }
func reads(c <-chan string){
results := ""
temp := <-c
results = results + "\n" + temp
return results
}
func main(){
go reads(c)
doSomething(c)
}
ことだろう偉大なそうでなければなりhttps://play.golang.org/使用して再現するような例を持っていますプロセスを理解するのが難しいでしょう。 – oivoodoo
あなたの再帰が基本ケースを持っていることを確認し、すべての再帰呼び出しがあなたを基底ケースに近づけるようにします。 –
遊び場が必要です。 – I159