为了账号安全,请及时绑定邮箱和手机立即绑定

Goroutine 创建设计模式

Goroutine 创建设计模式

Go
哆啦的时光机 2022-07-25 10:48:09
当编写应该作为 goroutine 的一部分运行的逻辑时,方法本身应该创建 goroutine 还是应该由调用函数负责?例如,以下哪个更可取?在方法中创建 go 例程func longrunning() chan Result {    c := make(chan Result)    go func() {        // Business Logic Here        c <- Result{}    }()    return c}func main() {    c := longrunning()        // Do additional tasks        <-c}留给调用者func longrunning() Result {    // Business Logic Here    return Result{}}func main() {    c := make(chan Result)    go func() {        c <- longrunning()    }()        // Do additional tasks    <-c}
查看完整描述

1 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

在 Go 中,将函数作为 goroutine 启动(使用go关键字 / 语句)是微不足道的,所以无论他/她想要同步还是异步运行你的函数,始终将该选项留给调用者。

这样你也可以从异步传递结果中解脱出来,客户端可能已经有一个指定的通道,“集成”到其他等待结果处理的 goroutines 中。类似地,客户端可能已经启动了一个 goroutine 来准备其他事情,因此客户端可以使用该 goroutine 而无需启动另一个 goroutine,如果您将其“连接”进去。


查看完整回答
反对 回复 2022-07-25
  • 1 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号