Go创建赋值channel
生活随笔
收集整理的這篇文章主要介紹了
Go创建赋值channel
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼1?
package mainimport ("fmt""time" )// 對于channel的賦值 對于channel賦賦值必須通過goroutine // 如果不是goroutine的話 那么channel就沒有存在的意義了 // channel存在的意義就是給routine進行通信 func write(a int,ch chan int){ch<-a; }func main(){// 方法一:channel的創建賦值// var ch chan int;// ch = make(chan int);// 方法二:短寫法// ch:=make(chan int);// 方法三:綜合寫法:全局寫法!!!!var ch = make(chan int);go write(2,ch);time.Sleep(10);c:=<-ch;fmt.Printf("%v\n",c); }代碼2
package mainimport "fmt"func main() {messages := make(chan string)// channel與goroutine必須并存// 如果只有channel,根本無法運行,因為全部死鎖了// 如果只有goroutine,協程根本不會執行,因為沒時間,主程序已經結束了// 因為有了堵塞,協程才會執行go func(){fmt.Println("2")messages<-"aaaa"}()// channel等待寫入數據,此處堵塞// 協程寫入數據后,會繼續執行fmt.Println("1");msg:=<-messagesfmt.Println("3")fmt.Println(msg) }// ping?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Go创建赋值channel的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Go三种方式创建赋值map
- 下一篇: 瀛通通讯主营业务 主要从事蓝牙耳机和数据