go协程和通道
作者:互联网
一、协程
二、通道
我们来验证阻塞:
说明程序阻塞了,阻塞在第一次循环的位置。
上面证明的是接受者阻塞,现在来证明发送者阻塞。
如果发送者发送了一个数据,没有人接收,那么就不再发送下一个数据,除非通道的数据被接收。
协程间的同步:
go func1()
go func2()
go func3()
在三个协程间同步数据,通过使用通道来达到这一点。
使用带缓冲的通道,这样就不会导致阻塞了。
这里的tmp结果相当于一个信号,它是去通知主程序结束的。
用for循环遍历通道:
管道和选择器模式:
// 通过使用方向注解来限制协程对通道的操作
// 注意 变量请用驼峰方式 不要用下划线来连接
标签:协程,协程间,阻塞,发送者,go,通道 来源: https://www.cnblogs.com/t-road/p/15417981.html