Go-goroutine 不可滥用

本文探讨了Go语言中Goroutine使用的注意事项,包括指针传递的安全性问题、增加函数危险系数的风险及滥用陷阱。文章提供了安全使用Goroutine的建议,并介绍了两种使用Goroutine的常见场景:业务逻辑并发需求和性能优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

goroutine 是go语言最大的创新,但这并不意味着我们可以随意使用。原因:

1 goroutine的指针传递是不安全的

2 goroutine增加了函数的危险系数

3 goroutine的滥用陷阱

处理方法
1 当启动一个goroutine的时候,如果一个函数必须要传递一个指针,但是函数层级很深,在无法保证安全的情况下,传递这个指针指向对象的一个克隆,而不是直接传递指针。
2 什么时候使用goroutine:
有两种思维逻辑会想到使用goroutine:
2.1 业务逻辑需要并发

比如一个服务器,接收请求,阻塞式的方法是一个请求处理完成后,才开始第二个请求的处理。其实在设计的时候我们一定不会这么做,我们会在一开始就已经想到使用并发来处理这个场景,每个请求启动一个goroutine为它服务,这样就达到了并行的效果。这种goroutine直接按照思维的逻辑来使用goroutine。
2.2 性能优化需要并发
详见HERE.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值