150.1 go语言开发实战慕课版
12.41 channel 的概述
channel即Go的通道,是協(xié)程之間的通信機(jī)制。一個(gè)channel是一條通信管道,它可以讓一個(gè)協(xié)程通過它給另一個(gè)協(xié)程發(fā)送數(shù)據(jù)。每個(gè)channel都需要指定數(shù)據(jù)類型,即channel可發(fā)送數(shù)據(jù)的類型。如果使用channel發(fā)送int類型數(shù)據(jù),可以寫成chan int。數(shù)據(jù)發(fā)送的方式如同水在管道中的流動(dòng)。
傳統(tǒng)的線程之間可以通過共享內(nèi)存進(jìn)行數(shù)據(jù)交互,不同的線程共享內(nèi)存的同步問題需要使用鎖來解決,這樣會(huì)導(dǎo)致性能低下。Go語言中提倡使用channel的方式代替共享內(nèi)存。換言之,Go語言主張通過數(shù)據(jù)傳遞來實(shí)現(xiàn)共享內(nèi)存,而不是通過共享內(nèi)存來實(shí)現(xiàn)數(shù)據(jù)傳遞。
12.4.2 創(chuàng)建channel類型
聲明channel類型的語法如下:
var channel 變量 chan channel 類型
chan類型的空值是nil ,聲明后需要配合 make 才能使用。channel是引用類型 需要使用make 進(jìn)行創(chuàng)建。
總結(jié)
以上是生活随笔為你收集整理的150.1 go语言开发实战慕课版的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html文本框样式大全,HTML文本框样
- 下一篇: erdas遥感图像几何校正_定量/高光谱