博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
go语言之进阶篇无缓冲channel
阅读量:5052 次
发布时间:2019-06-12

本文共 566 字,大约阅读时间需要 1 分钟。

1、无缓冲channel

示例:

package mainimport (	"fmt"	"time")func main() {	//创建一个无缓存的channel	ch := make(chan int, 0)	//len(ch)缓冲区剩余数据个数, cap(ch)缓冲区大小	fmt.Printf("len(ch) = %d, cap(ch)= %d\n", len(ch), cap(ch))	//新建协程	go func() {		for i := 0; i < 3; i++ {			fmt.Printf("子协程:i = %d\n", i)			ch <- i //往chan写内容		}	}()	//延时	time.Sleep(2 * time.Second)	for i := 0; i < 3; i++ {		num := <-ch //读管道中内容,没有内容前,阻塞		fmt.Println("num = ", num)	}}

执行结果:

len(ch) = 0, cap(ch)= 0子协程:i = 0num =  0子协程:i = 1    子协程:i = 2   num =  1num =  2

  

转载于:https://www.cnblogs.com/nulige/p/10278231.html

你可能感兴趣的文章
SQL Server(1)数据库基础
查看>>
java 遍历数组的几种方式
查看>>
RAC碎碎念
查看>>
基于Maven构建ssh分模块项目
查看>>
WIndows Phone 7的MVVM Light框架
查看>>
关于注解的初级认识
查看>>
mysql group by 报错 ,only_full_group_by 三种解决方案
查看>>
(转载)iOS UILabel自定义行间距时获取高度
查看>>
Linux里$等记得转义
查看>>
Powershell使用管道
查看>>
银行卡输入特效 4个加一空格
查看>>
zip unzip linux下使用
查看>>
每日英语:Instant Gratification: China Luxury Buyers Getting More Impulsive
查看>>
Java数据库操作学习
查看>>
使用更改跟踪(ChangeTracking)来实现数据类型变更
查看>>
c++访问mysql数据库
查看>>
JAVA代码查错试题集
查看>>
C#中小数点后保留两位小数,四舍五入的函数及使用方法
查看>>
你的JavaBean是否真的需要实现Serializable
查看>>
CSS3效果:立体字和镂空字
查看>>