2020/05/15

[golang]selectとchan

golangで、chanの受信をしているコードがあった。
普通に?1行で受信しているのではなく、selectのcaseで受信していたのだ。
しかも複数chan!
受信って、バッファがあるときはどうだったか忘れたけど、ブロッキングになってるんじゃなかったっけ?


そうでもないらしい。

Go言語でチャネルとselect - Qiita
https://qiita.com/najeira/items/71a0bcd079c9066347b4#select

selectだからというわけでもないだろうが、selectシステムコールのように複数の待ち受けができるらしい。

もしselectがなかったら、どうするんだろう? 非同期はgoroutineで対処するものなのだろうから、どうしようもないのかな。。。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。