go chan使用 匿名函数执行
来源:互联网 发布:电动汽车行业前景知乎 编辑:程序博客网 时间:2024/06/03 23:43
//关于go语言协程通道的使用
//1.通道可以带缓存,也可以不带
//2.不带缓存的,不管是读还是写都会阻塞
//3.带缓存的,如果缓存溢出,就会阻塞
//4.make(chan int,1)和make(chan int)是不一样的,第一种通道内写入两个数据会阻塞,第二种写入就会阻塞
//5.如果协程在阻塞,但是主程已经退出执行,则认为程序死锁
//6.如果程序除了主程之外(没有一个协程),处于阻塞状态,则认为程序死锁
//7.一句话:只有一个协程(可以是主程),在阻塞,认为程序处于死锁
//8.子程序是协程的一种特例,阻塞到子程序执行完毕返回,而协程可能等不到执行完毕就返回,然后条件满足再回来执行
package mainimport ( "fmt")func main() { //message := make(chan string) message := make(chan string, 1) msg := "hello" go func() { // message <- msg // fmt.Println("222") // fmt.Println("msg2:", <-message) // fmt.Println("1111111") select { case message <- msg: fmt.Println("message1") fmt.Println("msg2:", msg) default: fmt.Println("no message1.") } }() fmt.Println("msg1", <-message) select { case message <- msg: fmt.Println("message") fmt.Println("msg:", msg) default: fmt.Println("no message2.") } fmt.Println("msg3", <-message)}
运行结果:
message1
msg2: hello
msg1 hello
message
msg: hello
msg3 hello
阅读全文
0 0
- go chan使用 匿名函数执行
- go语言函数传递问题(map、切片、接口、chan)
- Go匿名函数
- GO通道chan
- Understanding Chan Chan's in Go
- go语言闭包,匿名函数,变量使用
- go语言的匿名函数
- GO中chan的理解
- JS执行匿名函数
- 匿名自执行函数
- 自执行匿名函数
- 自执行匿名函数
- 匿名函数自执行
- 匿名函数自执行
- 自执行匿名函数
- 自执行函数,匿名函数
- golang使用chan
- golang chan 使用例子
- 关于SPA实现的基本原理
- javaweb之http协议
- CRC检验解析
- 燃气灶电子点火器原理与检修(图)
- jqery和js如何判断checkbox是否选中
- go chan使用 匿名函数执行
- 【C语言】【unix c】信号的产生
- CTF入门--请输入密码
- leetcode1. Two Sum
- kafka_2.11-0.8.2.1+java 生产消费程序demo示例
- 【九度OJ】1013:开门人和关门人
- 模仿优酷菜单
- 关于#pragma pack(n)引发的一系列问题
- Spark2.x学习笔记:4、Spark程序架构与运行模式