猫の兄に従ってGolang 16-Chanelを学びます.

1355 ワード


goroutineとchanelはGolangであり、「生まれつきの合併」と呼ばれる二つの核心的な原因です.
 
チャンネルはgoroutine間で通信する方法の一つです.Unixのパイプライン機能と非常に似ています.
猫兄さんが言いました.データ構造の中の列です.先に出ます.
チャンネル宣言:
ChannelType = ( "chan" | "chan" "
チャンネルはタイプに関連しています.つまり、一つのチャンネルは一つのタイプしか伝えられません.たとえば:
var ch chan int  #ch    int。
くりを一つあげる:
package main

import "fmt"

func justequal(a int, c chan int) {
	c 
まず、一つのチャンネルを定義します.
次に、goroutineでスレッドを開いて、チャンネルに内容を詰め込む.
そして、プリントアウトします.(実は直接fmt.Println(
最後に、makeと定義していますので、goroutine方式で値を付けなければなりません.後はなぜですか?
=============華やかな分割線==========================================================================
上記の例は最も簡単で乱暴なチャンネルです.直腸子は内容を保存できません.実際のチャンネルは、やはり「中身」があります.もちろん、ITの行話は、これを「バッファ」といいます.
「中身」があるチャンネルを再定義します.
ch := make(chan int, 10)
LOOK~中身は本当にあります.10ネタあります.
これで操作が簡単になりました.栗をもう一つお願いします.
package main

import "fmt"

func main() {
    c := make(chan int,10)
    c 
100 200 300
よく分かりますか?先に出してください.
チャンネルを定義するときは、キャッシュサイズを書かない、またはキャッシュ数を「0」と書いてもキャッシュレスを表します.
緩衝の区別がありますか?生活の中で速達を受け取る状況を比べてみます.
宅配便が届きました
1)郵便配達員はずっとあなたを待っていますが、来ないなら行かないです.
2)郵便配達員はあなたがいなくても、宅配便の小包を受付に置いて、人は出発します.次の書類に急いで行きました.これはキャッシュがあります.