go中协程和 async/await 是并发原语,协程是轻量级执行线程,async/await 是语法糖,允许异步代码编写。协程在 goroutine 中运行,使用 go 关键字创建。async/await 定义协程使用 async 关键字,暂停当前协程等待其他协程完成用 await 关键字。实战中,协程可用于管理并发请求,通过 goroutine 池避免为每个请求创建和销毁协程的开销。
Go中协程与 async/await 的比较
在 Go 中,协程和 async/await 是两种并发原语,用于编写并发代码。
协程
协程是轻量级的执行线程,它允许我们同时在多个地方执行代码。协程在 goroutine 中运行,goroutine 是 Go 语言对用户态线程的实现。
以下是创建和使用协程的代码示例:
package main
import (
"fmt"
"sync"
)
func main() {
var wg sync.WaitGroup
for i := 0; i < 10; i++ {
wg.Add(1)
go func(i int) {
fmt.Println(i)
wg.Done()
}(i)
}
wg.Wait()
}



腾讯云 12-20 广告

