发生死锁的go routine代码
来源:互联网 发布:绿色加密软件 编辑:程序博客网 时间:2024/05/04 03:31
package mainimport("fmt"_"strings")type PullReqMsg struct{name string//num int}type hauler struct{Pullch chan *PullReqMsgtopic string}func(h *hauler)Loop() {fmt.Println("run Loop")for{select{case request := <-h.Pullch: fmt.Println("receive channel...") request.name = "clk" break}}}func main(){var worker haulerworker.topic = "kcl"worker.Pullch = make(chan *PullReqMsg)req_msg := new(PullReqMsg)fmt.Println("heer")worker.Pullch<-req_msg//fmt.Println(req_msg.name)go worker.Loop()req_msg.name = "cl-k"name := req_msg.namefmt.Println(name)}
正常代码:
package mainimport("fmt"_"strings")type PullReqMsg struct{name string//num int}type hauler struct{Pullch chan *PullReqMsgtopic string}func(h *hauler)Loop() {fmt.Println("run Loop")for{select{case request := <-h.Pullch: fmt.Println("receive channel...") request.name = "clk" break}}}func main(){var worker haulerworker.topic = "kcl"worker.Pullch = make(chan *PullReqMsg)req_msg := new(PullReqMsg)fmt.Println("heer")name0 := req_msg.namefmt.Println(name0)go worker.Loop()worker.Pullch<-req_msg//fmt.Println(req_msg.name)//req_msg.name = "cl-k"name := req_msg.namefmt.Println(name)}
0 0
- 发生死锁的go routine代码
- 死锁发生的条件
- 死锁发生的情况
- 死锁发生的条件
- 死锁发生的条件,如何避免死锁
- notify发生死锁的情景
- 死锁的发生与处理
- notify发生死锁的情景
- Go学习笔记——go routine
- 对死锁发生的一些建议
- 如何减少SQLServer死锁发生的情况
- 怎样减少sqlserver中死锁的发生
- java多线程发生死锁的一个例子
- 检测发生死锁的sql语句
- gcd 发生死锁的一种情况
- 死锁发生的条件和预防
- 不发生死锁的设备最小数
- 关于什么时候会发生死锁的问题
- 什么是DevOps?
- OpenGL实现Bezier曲线
- 数据挖掘学习笔记一
- thinkphp 使用postgresql 问题
- 关于jquery中html()、text()、val()的区别
- 发生死锁的go routine代码
- 登录错误多次密码锁定账户一定时间之数据库建表参考
- self 在OC中的作用(主要是对象方法和类方法中的作用)
- Android中一个Fragment调用另一个fragment的方法
- 机器学习实战-1
- Gson的使用详解
- mvn目录结构
- maven+SSM框架整合
- C# 线程(一)入门