Golang--Channel基础

来源:互联网 发布:最新域名升级紧急通知 编辑:程序博客网 时间:2024/05/25 21:33

1.Channel简介

Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯。
它的操作符是箭头<-。

ch := make(chan int, 100)defer close(ch)ch <- v //发送值v到Channel ch中v := <-ch //从Channel ch中接收数据,并将数据赋值给vv, ok := <-ch //可以检查channel是否已经被关闭(箭头的指向就是数据的流向)

使用make初始化Channel,可以设置容量,容量(capacity)代表channel容纳的最多的元素数量,代表channel的缓存的大小。如果没有设置容量,或者设置容量为0,说明Channel没有缓存,只有sender和receiver都准备好了后他们的通讯(communication)才会发生(Blocking)。如果设置了缓存,就有可能不发生阻塞,只有buffer满了后send才会阻塞,而只有缓存空了后receive才会阻塞。

2.Channel类型

Channel类型定义格式如下:

ChannelType = ("chan" | "chan" "<-" | "<-" "chan")ElementType

它包括三种类型的定义。可选的<-代表channel的方向,如果没有指定方向,那么channel就是双向的。既可以接收数据,也可以发送数据。
(未完待续)

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 如果死者托梦说自己过的不好怎么办 吵架了老婆跑回娘家不回家了怎么办 和老婆吵架她跑回娘家了怎么办 鞋子里面的皮穿的都是泥怎么办 绝地求生手游模拟器键位不灵怎么办 我更新目录的时候目录不存在怎么办 如果别人欠我钱不还 我该怎么办 老婆欠信用卡的钱我该怎么办 我欠了很多钱我该怎么办 一个人欠我钱跑了我该怎么办 买房子时间长了成危楼了怎么办 别人欠我钱人找不到了怎么办 欠银行信用卡钱人失踪了怎么办 欧洲卡车模拟2没油了怎么办 蓝牙安装包里没有微信怎么办 腾讯手游模拟器玩全军出击卡怎么办 手游cf用模拟器画面很抖怎么办 腾讯手游助手模拟器游戏卡死怎么办 腾讯手游模拟器提示注册以满怎么办 手游绝地求生被检测成模拟器怎么办 腾讯手游助手模拟器内存不够怎么办 微信视频对方听不到我的声音怎么办 学生考试传纸条作弊老师应怎么办 苹果手机微信小游戏没有声音怎么办 红米手机游戏下好了安装不了怎么办 小米手机sd卡存储已满怎么办 英雄联盟峡谷之巅资格被收回怎么办 人进监狱之前信用卡没还怎么办 荒野行动资源文件下载卡住了怎么办 荒野行动绑定的手机号停机了怎么办 不小心误点了爱奇艺扣款了怎么办 和别人吵架别人先骂你怎么办 自己人被带到了缅甸黑社会了怎么办 绝地求生忘记复制钥匙激活码怎么办 绝地求生买的钥匙激活码丢了怎么办 蓝河奶粉宝宝吃了不长肉怎么办 苹果ios版本太低激活不了怎么办 脸上被油烫伤了 起了水泡怎么办 皮肤被油烫伤起来个水泡怎么办 去泰国旅游没来得及兑换泰铢怎么办 游戏和安卓 不和 出现黑屏怎么办