首页 > 解决方案 > golang spimple crud web api,我是否需要为每个处理程序启动一个 goroutine

问题描述

我正在用 golang 编写一个简单的 web api,其中包含 crud 操作(从数据库读取和写入)。作为其中的一部分,我是否需要为每个处理程序启动一个 go 例程,HandleFunc或者服务器 api 是否通过HandleFunc. 如果我需要启动一个单独的 go 例程,我假设我必须使用缓冲通道来发送信号,以及如何确保使用正确的上下文将请求发送回正确的客户端。

如果这是一个基本问题,我很抱歉,但我来自 nodejs 背景,这是自动处理的。

标签: goserver

解决方案


是的,每个处理程序都运行在一个 goroutine 上。您需要使用互斥锁或通道来管理对共享资源的访问。本文展示了如何以非常实用的方式管理并发:https ://eli.thegreenplace.net/2019/on-concurrency-in-go-http-servers/


推荐阅读