[Go]并发channel

本文详细介绍了Go语言中的channel,包括channel的概念、创建、无缓冲与有缓冲的使用、数据同步、关闭channel以及单向channel。channel作为Go语言并发处理的重要工具,提供了同步通信的方式,无缓冲channel实现同步通信,有缓冲channel则支持异步通信。
摘要由CSDN通过智能技术生成

系列文章目录

[Go]并发goroutine



一、channel是什么?

Channel一种数据类型。先进先出FIFO。是一种数据类型,类似于队列。用于数据同步。

二、channel使用

1.创建channel

make (chan在channel中传递的数据类型,容量),容星= 0:无缓冲channel, 容星> 0:有缓冲channel.

//创建无缓冲channel
//格式:make(chan Type, capacity)。
ch:=make(chan int)
ch1:=make(chan string,0)
//创建缓冲channel
ch2:=make(chan string,1)

当我们复制一一个channel或用于函数参数传递时,引用传递。我们只是拷贝了一个channel引用,因此调用者和被调用者将引用同一个channel对象。和其它的引用类型- -样, channel 的零值也是nil。
当参数capacity=0时,channel 是无缓冲阻塞读写的:当capacity>0时,channel 有缓冲、是非阻塞的,直到写满capacity个元素才阻塞写入。。

2.channel的机制

channe|有两个端:
写端(传入端)

chan 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值