首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >GO实用笔记

GO实用笔记

原创
作者头像
用户2954508
修改2025-07-30 16:20:22
修改2025-07-30 16:20:22
1790
举报
文章被收录于专栏:go开发笔记go开发笔记

1。goroutine go的核心并发编程,轻量级县城。通过少量线程,大量服用GoRoutine(协程)。

嗲用方式:实用go func(){} 或者go 函数名

2.GoRoutine协程等待

应用场景,主线程执行完毕前,需要等待部分协程完成

实用方式:sync.WaitGroup方法

代码语言:go
复制
var wg sync.WaitGroup
wg.Add(1)
go func() {
    defer wg.Done()
    // 具体逻辑代码
}()
wg.Wait() // 等待协程完成

3.CSP模型(Communicating Sequential Processes)

通过channel(通道)传递数据

代码语言:go
复制
ch:=make(chan int)//创建通道
go func(){    
    ch<-1//向通道传入数据
}
value:=<-ch//接受ch通道内数据

4.go协程常见问题:

协程彼此等待响应,导致程序卡死;解决方案:实用sync.WaitGroup

未关闭channel通道或者未等待协程完成:解决方案:实用close(ch)关闭协程

多个协程修改共享变量:解决方案:实用互斥锁Mutex方法进行保护

代码语言:go
复制
var mu sync.Mutex
mu.Lock()//开启互斥锁
//修改变量造作
mu.UnLock()//解锁

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档