限りmessages
チャンネルでは何も存在しないので、私は、最初のselect
はdefault
ケースをトリガされ理解し、default
ケースが存在しなかった場合、我々はfatal error: all goroutines are asleep - deadlock!
を受け取ることになるとして、エラー?
まあ、私はそれが受け取ると反対に動作するはず、と思ったとして、具体的case messages <- msg:
をトリガー、私は二select
を引き起こすことができる方法を見つけ出すことはできません。したがって、2つのメッセージ用のバッファがあり、3番目のメッセージをチャネルに送信するとdefault
句がトリガーされますが、messages
チャネルは空です。なぜ2番目の選択でdefault
句がトリガーされるのですか?そして、どのように私はcase messages <- msg:
句をトリガーできますか?
さらに質問:D うまくいけば、私はあなたに感謝し、自分でそれを把握します! – Arno
@アルノ、この記事を読むhttp://stackoverflow.com/questions/18660533/why-using-unbuffered-channel-in-the-same-goroutine-gives-a-デッドロックの説明:) –