ホームページ >バックエンド開発 >Golang >ゴランちゃんは閉店してるの?

ゴランちゃんは閉店してるの?

(*-*)浩
(*-*)浩オリジナル
2019-12-13 11:45:243112ブラウズ

ゴランちゃんは閉店してるの?

chan は golang において非常に重要なもので、ゴルーチンの通信に使用されます。、golang プログラムには必然的に複数のゴルーチンが存在するため、これらのゴルーチンをどのように同期させるかが非常に重要です。 。

chan を使用する場合、いくつかの経験があります: (推奨される学習: Go )

まず第一に、常に記号 & lt 読み取りまたは書き込み (v,ok :=

第二に、読むときにOKがない場合は読むこともできます。ただし、閉じている場合は読み取ることができ、割り当てはありません。閉じているかどうかを知りたい場合は、 ok を追加する必要があります。つまり、 chan が決して閉じられていない限り、読み取りには v,ok を使用する必要があります。 v の代わりに = <-c := <-c の方法。

繰り返しますが、クローズされた chan に書き込むことはできないため、通常はシグナル chan (通常、バッファーは 1) を使用して、書き込むか放棄するかを決定する必要があります。書き込みが成功したかどうかを判断するには、select を使用します。 . または、閉じようとしているため、書き込みをあきらめる必要があります。

最後に、chan がクローズされた後もデータがある場合、ok は true のままで、chan にデータがなくなるまで false になります。

チャネルが閉じている場合、取得はブロックされませんが、ゼロ値を返します

package main
 
import "fmt"
 
func main() {
    c := make(chan int, 5)
    c <- 123
    close(c)
     
    fmt.Println(<-c)
    fmt.Println(<-c)
}

出力

123
0

以上がゴランちゃんは閉店してるの?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。