|
|
51CTO旗下网站
|
|
移动端

10.3.1 基本语法

《Go语言编程入门与实战技巧》第10章并发编程,本章Go语言里的并发指的是能让某个函数独立于其他函数运行的能力。当一个函数创建为协程(goroutine)时,Go语言会将其视为一个独立的工作单元,这个单元会被调度到可用的逻辑处理器上执行。本节为大家介绍基本语法。

作者:黄靖钧来源:电子工业出版社|2018-09-23 09:47

10.3.1  基本语法

一般channel的声明形式为:

  1. var chanName chan ElementType 

与一般的变量声明不同的地方仅仅是在类型之前加了chan关键字。ElementType指定这个channel所能传递的元素类型。举个例子,声明一个传递类型为int的channel:

  1. var ch chan int 

或者,声明一个map,元素是bool型的channel:

  1. var m map[string] chan bool 

上面的语句都是合法的。定义一个channel也很简单,直接使用内置的函数make()即可:

  1. ch :make(chan int) 

这就声明并初始化了一个int型的名为ch的channel。在channel的用法中,最常见的包括写入和读出。将一个数据写入(发送)至channel的语法很直观:

  1. ch <- value 

向channel写入数据通常会导致程序阻塞,直到有其他goroutine从这个channel中读取数据。从channel中读取数据的语法是:

  1. value :<-ch 

如果channel之前没有写入数据,那么从channel中读取数据也会导致程序阻塞,直到channel中被写入数据为止。之后还会介绍如何控制channel只接受写或者只允许读,即单向channel。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书会第9群:808517103

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

程序员密码学

《程序员密码学》涉及密码学的各个研究方向,分组密码、散列函数、公钥密码以及相关的攻击,同时也讲解了密码学算法实现上常用的ASN.编码、...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊