联系我们 - 广告服务
您的当前位置:官网首页 > 资讯 > 时局 >

GO的并发之道

来源: 编辑: 时间:2019-08-28
导读: 这里我们主要注重讲解下go中特有的channel,其类似于unix中的管道。channel俗称管道,用于数据传递或数据共享,其本质是一个先进先出的队列,使用go......

这里我们主要注重讲解下go中特有的channel,其类似于unix中的管道。

channel俗称管道,用于数据传递或数据共享,其本质是一个先进先出的队列,使用goroutine+channel进行数据通讯简单高效,同时也线程安全,多个goroutine可同时修改一个channel,不需要加锁。

1 var 变量名 chan 类型 //channel是有类型的,一个整数的channel只能存放整数
3 var test chan int 
5 var test chan map[string]string
7 var test chan *stu

channel可分为三种:

只读channel:只能读channel里面数据,不可写入

只写channel:只能写数据,不可读

一般channel:可读可写

复制代码
var readonlychan -chan int // 只读chan
var writeonlychan chan - int // 只写chan
var mychan chan int //读写channel
mychannel = make
read_only := make //定义只读的channel
write_only := make //定义只写的channel
read_write := make //可同时读写
复制代码
定义完成以后需要make来分配内存空间,不然会deadlock!

责任编辑:

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

上一篇:Go 关键字Select
下一篇:没有了

网友评论:

在“\templets\demo\comments.htm”原来的内容全部删除,插入第三方评论代码,如果不需要评论功能,删除comments.html里面的内容即可
推荐使用友言、多说、畅言(需备案后使用)等社会化评论插件

Copyright © 2018 太阳城娱乐场太阳城娱乐场-新太阳城 All Rights Reserved Power by DedeCms
本站所有资讯来源于网络 如有侵权请联系QQ:9490489
Top