显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

being23

写给未来的自己

 
 
 
 
 
 

Golang Channels

2017-1-15 19:04:03 阅读84 评论0 152017/01 Jan15

原文见Channels in Golang

Channels是Golang的重要特性,也是Golang独树一帜的特征之一。Channels使得并发编程更容易(至少看起来),灵活以及有趣。

本文给出channel相关的概念,语法和规则。

概念与语法

Channel介绍

Channel可以看作是程序内部的FIFO消息队列。使用Channel的目的是传输值,具体是指,在不同的goroutines之间传递值的所属。良好设计的代码应该保证在任何时刻任何值只属于最多一个goroutine。正确地使用channels,可以避免goroutine之间的数据竞争。

Channel 类型和取值

Channel是组合类型。类似数组,切片和map,channel的具体类型由元素类型决定。所有要发送到channel的数据类型必须与元素类型一致。例如,如果元素类型是string,那么channel的类型就是chan string。

Channel是有方向的。假设有类型T,那么chan T就是双向channel类型。对于双向channel,编译器允许从中收发数据。chan<- T是单向发送channel类型。编译器不允许从中接收数据。<-chan T是单向接收channel类型。编译器不允许向其发送数据。

双向channel类型chan

作者  | 2017-1-15 19:04:03 | 阅读(84) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 

广东省 深圳市

 发消息  写留言

 
真正的坚定,就是找到力量去做自己喜欢的事情,并为之努力,这样才会觉得生活是幸福的。
 
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 

归档

 
 
数据加载中...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017

注册 登录  
 加关注