其他分享
首页 > 其他分享> > go协程和通道

go协程和通道

作者:互联网

一、协程

 

二、通道

 

我们来验证阻塞:

说明程序阻塞了,阻塞在第一次循环的位置。

上面证明的是接受者阻塞,现在来证明发送者阻塞。

如果发送者发送了一个数据,没有人接收,那么就不再发送下一个数据,除非通道的数据被接收。

 

协程间的同步:

go func1()

go func2()

go func3()

在三个协程间同步数据,通过使用通道来达到这一点。

 

使用带缓冲的通道,这样就不会导致阻塞了。

这里的tmp结果相当于一个信号,它是去通知主程序结束的。

 

 

用for循环遍历通道:

 

管道和选择器模式:

// 通过使用方向注解来限制协程对通道的操作

// 注意 变量请用驼峰方式 不要用下划线来连接

标签:协程,协程间,阻塞,发送者,go,通道
来源: https://www.cnblogs.com/t-road/p/15417981.html