2017-09-07 20 views
-2

複数のゴルーチンがチャネルのセットで複数のゴルーチンを実行していて、そのうちの1つまたは複数のチャネルが共有されていて、それらのすべてが待機している間に共有チャネルが利用できるようになると、同時選択で同じ共有チャネルを選択する

ランタイムはこのケースを処理し、1つのゴルーチンだけがチャネルにアクセスして読み取り/書き込みを実行できますか?

+4

これは、チャネルの種類のようなものです。同時に使用できない場合、同期にはあまり効果がありません。 – JimB

+0

同期のためにそれらを使用することは、私がここで説明しているシナリオとは異なります。私のシナリオでは、2つのゴルーチンが同時に同じチャンネルから読み込み、 'select'を実行して積極的に待っています。そのチャネルに新しいデータがある場合、実行時には1つのゴルーチンだけがそのデータを読み取ることができますか? – mahdix

+2

違いはありません。チャネルは、通信および同期プリミティブであり、すべての送信および受信は同期ポイントです。 – JimB

答えて

1

上記のコメントはすべて回答しています。また、いくつかのコードを書くことができ、あなた自身のために見ることができます。これらの行の何かhttps://play.golang.org/p/4ZQLwO9wvw

関連する問題