1. 程式人生 > >go --channel (信道)

go --channel (信道)

寫入 ive 信息 緩存 讀取 package -- chan imp

①: "channel v 頻道", 收看同一個頻道,接受同一份信息, 頻道有時觀看人數過多, 就會無信號(阻塞), 不過可以換成數字信號這樣收看會流暢點(緩存). 還是喜歡 will will 和 jason一起主持的節目. 在那個沒有彈幕沒有後期表情的時代. 舒服

②: channel 只是一個"頻道", 有發就有接.

開, 關, 讀, 寫

chv := make(chan int)  //創建一個channel
chv <- data             //寫入到chv
data <- chv            //讀取chv
close(chv)             //
關閉chv

channel的使用

package main

import (
    "fmt"
    "time"
)

func send(c chan int) {
    c <- 1 //將1寫入通道 (2)
}
func receive(c chan int) {
    v := <-c                   //使用v 接受通道的值 也就是1 (4)
    fmt.Printf("output:%d", v) //output: 1
}
func main() {
    chv := make(chan int) //
不帶緩存模式: 定義一個管道給協程(send, receive)作通信使用 // chv := make(chan int, 3) //帶緩存模式, 3個以內不堵塞 go send(chv) //(1) go receive(chv) //(3) time.Sleep(1 * time.Second) }

go --channel (信道)