主题
文章
项目
资源
图书
Go网址导航
下载
官方文档
英文文档
中文文档
标准库中文版
Go指南
注册
登录
首页
会员
runningstarh的信息
TA的收藏
初级会员
第 59030 位会员
ID:
runningstarh
名字:
一只流浪的猪
注册时间:
2020-12-30 10:12:17
是否在线:
Offline
财富:
23
39
更多>>
最近发布的主题
暂无
更多>>
最近发布的文章
golang 获取三种不同的路径方法(执行路径,项目路径,文件路径)
at
2021-05-31 15:38:05
golang 进行文件夹的压缩与解压
at
2021-04-26 15:46:01
多协程通道的应用---三协程通过通道实现ABC按顺序输出100次
at
2021-04-19 16:49:01
更多>>
最近分享的资源
暂无
更多>>
最近发布的项目
暂无
更多>>
最近的评论
2021-04-21 11:03:57
评论了
博文
多协程通道的应用---三协程通过通道实现ABC按顺序输出100次
#2
楼
@li621020
非常感谢啦,认真阅读你的代码后发现,for加waitgroup的使用也是非常棒的,代码非常简洁,学习学习了!同时通过对比时间我发现我原来的代码存在问题,协程与主线程之间没有信息交流,导致多次运行后发现可能不会在一百次停下来,需要再加一个channal实现协程与主线程的通信。在这儿非常感谢你的回复,让我更加理解协程的意义了。这里贴出更加复杂的代码,希望后面的阅读者注意我犯过的错误,谢谢啦 `type Info struct { semiA chan int semiB chan int semiC chan int ch chan int } var result int =0 func (in *Info)printA(){ for{ in.semiA<-0 fmt.Println("A") in.semiB<-0 } } func (in *Info)printB(){ for{ <-in.semiB fmt.Println("B") in.semiC<-0 } } func (in *Info)printC(){ for { <-in.semiA <-in.semiC fmt.Println("C") //fmt.Println("******************") result++ fmt.Println(result) if result==100{ fmt.Println("fish ") in.ch<-1 close(in.ch) break } } } func main(){ starttime:=time.Now() start:=new(Info) start.semiA=make(chan int) start.semiB=make(chan int) start.semiC=make(chan int) start.ch=make(chan int) //ch :=make(chan int) go start.printA() go start.printB() go start.printC() <-start.ch //time.Sleep(1*time.Second) defer close(start.semiA) defer close(start.semiB) defer close(start.semiC) //<-ch endtime:=time.Since(starttime) fmt.Println(endtime) }`,同时我希望大家多多思考,更合适的代码,不断地优化自己的代码,感谢您的评论
2021-04-19 14:52:25
评论了
主题
三协程按序循环输出ABC,为何有时会出现A不输出的结果?
printC的时候,有两个参数进行交换,没有对其顺序操作进行加锁,导致多goroutine进行对行抢占,你对流程加锁后就可以避免错误,具体的调试你需要自己进行
最新主题
|
最新资源
|
最新评论
C#+WPF+Opencv模块化开发视觉对位运动控制系统教程
C#+WPF+Opencv模块化开发视觉对位运动控制系统
Go 代码阅读不再难,goanalysis 工具帮你忙
go-carbon v2.6.1 RC2版发布,轻量级、语义化、对开发者友好的 golang 时间处理库
给 Thorium 浏览器写了个用来升级的工具 被作者留意到了
【2025新品】java-antd-web3全栈dapp开发课程
【2025新品】java-antd-web3全栈dapp开发教程
一个 aliyun oss 的 sdk
go-carbon v2.6.1 RC1版发布,轻量级、语义化、对开发者友好的 golang 时间处理库
基于vite6+deepseek-v3搭建网页版个人AI流式聊天助手
ansi、unicode、UCS、UTF等概念(转)
一图弄懂ASCII、GB2312、GBK、GB18030编码
如何在 Go 中使用 C++?
golang标准库中文版
Go modules:版本是如何选择的?
niuhe - IDL 生成代码,前端协议, 页面和文档插件
Vite5+Electron聊天室|electron31跨平台仿微信EXE客户端|vue3聊天程序
Tauri2.0-Vue3OS桌面端os平台|tauri2+vite6+arco电脑版OS管理系统
flutter3-dymall仿抖音直播商城|Flutter3.27短视频+直播+聊天App实例
结构体的切片(slice of struct)不等于它实现的接口的切片(slice of interface)?
brothersam
4天之前
在
Go每日一题(38)
中评论
有可能 wg.Add(1) 还没有执行,wg.Wait()就滑过去了。
news01
5天之前
在
一个 aliyun oss 的 sdk
中评论
翻红墙,看禁闻 https://github.com/truth5/5#readme
jslgo
6天之前
在
[内推]北京五道口顶级游戏公司中台部门招go开发
中评论
新增大量岗位, 一直在找招开发
xiaoyan2015
8天之前
在
基于vite6+deepseek-v3搭建网页版个人AI流式聊天助手
中评论
 vue3.5+deepseek实战大模型AI聊天对话小助手 [https://studygolang.com/topics/17821](https://studygolang.com/topics/17821)
xiaoyan2015
8天之前
在
vue3.5+deepseek实战大模型AI聊天对话小助手
中评论
 vite6+arco+deepseek-v3网页版ai流式多轮对话助手。 [https://segmentfault.com/a/1190000046393396](https://segmentfault.com/a/1190000046393396)
WangWangZhou
11天之前
在
Go每日一题(31)
中评论
mark
wangzhongyang007
12天之前
在
来看看现在go开发岗10k的面试强度
中评论
你觉得这个难度怎么样?
wangzhongyang007
13天之前
在
金三银四真实面经分享
中评论
也欢迎大家向我投稿最近的面经,有偿~
brothersam
16天之前
在
Go每日一题(26)
中评论
o
wangzhongyang007
17天之前
在
2024年最受欢迎的5个Go框架
中评论
@pangqr
是的,gin更加轻量级,GoFrame适合稍微大型一点的项目
X
登录和大家一起探讨吧
用户名
密码
记住登录状态
登录
GitHub 登录
忘记密码?
还不是会员
现在注册
最近的评论