gpt4 book ai didi

go - 异步 api 上的阻塞函数是惯用的吗?

转载 作者:IT王子 更新时间:2023-10-29 02:23:55 26 4
gpt4 key购买 nike

使用异步 api 是否更惯用,具有阻塞功能作为同步 api,它只调用异步 api 并在返回之前等待答案,而不是使用非并发 api 并让调用者运行它如果他们想要异步,他们自己的 goroutine?

在我当前的情况下,我有一个工作协程,它从请求 channel 读取并将返回值发送到响应 channel (它从请求 channel 进入请求结构)。

这似乎与链接的问题不同,因为我需要返回值或进行同步,以便我可以确保 api 调用在我执行其他操作之前完成,以避免竞争条件。

最佳答案

对于golang,我推荐Effective Go-concurrency .特别是我认为每个使用 golang 的人都需要了解 goroutineparallelization 的基础知识:

Goroutines 被多路复用到多个操作系统线程上,因此如果一个线程应该阻塞,例如在等待 I/O 时,其他线程会继续运行。他们的设计隐藏了线程创建和管理的许多复杂性。

Go 运行时的当前实现仅将单个内核专用于用户级处理。在系统调用中可以阻塞任意数量的 goroutine,但默认情况下,任何时候只有一个 goroutine 可以执行用户级代码。

关于go - 异步 api 上的阻塞函数是惯用的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31114359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com