Golang Go语言中萌新问个 Goroutine 问题

发布于 1周前 作者 zlyuanteng 来自 Go语言

Golang Go语言中萌新问个 Goroutine 问题
只有一个任务,并且是同步的,比如:拉一个 api 要等 2s|
这个有没必要写成 Goroutine ?
主要是性能方面有没区别。

6 回复

只有一个任务还有数据依赖的写 goroutine 干啥
性能更差

更多关于Golang Go语言中萌新问个 Goroutine 问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


只有一个任务,还要等 2 秒,还考虑啥性能问题。。。不过随手一写反正也没坏处。。。

所有异步都是解决 io 耗时的,典型就是等待网络或者 db 操作
对 cpu 密集性任务没用,看你耗时在哪里了

只是 http 请求这一部分加 Goroutine,最终还是要 waitgroup

如果是批量请求,多个 Goroutine 我觉得性能上会好一些
但拉一个的话…你咋写区别都不大

你好,很高兴看到你对Go语言中的Goroutine感兴趣。Goroutine是Go语言并发编程的核心概念,它让你可以轻松实现并发执行的任务。

首先,Goroutine是由Go运行时管理的轻量级线程。相比于传统的系统线程,Goroutine的创建和销毁成本非常低,这使得在Go中大量使用Goroutine成为可能。

在Go语言中,启动一个新的Goroutine非常简单,只需要使用go关键字即可。例如,go someFunction()会启动一个新的Goroutine来执行someFunction函数。

对于你的问题,可能涉及到的点包括:

  1. 如何正确启动和管理Goroutine:确保你的Goroutine能够正确启动,并且在需要的时候能够优雅地退出。

  2. Goroutine之间的通信:使用通道(channel)来实现Goroutine之间的数据传递和同步,这是Go语言并发编程的一种推荐方式。

  3. 避免资源泄漏:确保你的Goroutine在完成工作后能够被正确回收,避免资源泄漏。

  4. 性能调优:了解Goroutine的调度机制,以及如何通过合理的代码设计来提高程序的并发性能。

如果你有更具体的问题,比如如何在特定场景下使用Goroutine,或者遇到了什么并发相关的bug,欢迎详细描述,我会尽力帮助你解决。

回到顶部