|      1simapple      2019-12-05 17:08:22 +08:00 在需要等待 io 的地方 最小化 一个 goroutine | 
|      2BlackBerry999      2019-12-05 17:08:28 +08:00 要看实际情况,如某些请求对响应时间有要求,但是有部分业务处理耗时较长,此部分会用协程异步处理。 总结一下:按需处理。 | 
|  |      3Mithrandir OP @BlackBerry999 @simapple 我理解 goroutine 本来就不会因为自身的在处理 IO 操作而导致其他 gorutine 等待,那么这种情况开新 goroutine 有啥意义呢。 | 
|  |      4Mithrandir OP 如果是非 IO 操作导致该 goroutine 处理时间过长,这种情况新开 goroutine 也没用啊,该占用的 CPU 时间还是要占用。 | 
|      5yuankui      2019-12-05 18:05:24 +08:00 一杆子,捅到底 | 
|      6Heebe      2019-12-05 18:14:08 +08:00 我喜欢丰满的,他喜欢瘦的。不过我们都追求一个原则,必须是女的! 任何模式都是基于业务而设计。 | 
|      722too      2019-12-05 18:18:31 +08:00 基于业务,理论上你都在当前开启了一个 goruntine 了. 那就你认为内部的东西是可以异步的. 具体这个异步里面要不要再写 goruntine ,还是要看你的业务能不能 异步, 如果只能同步操作,就不要开启. 如果能异步那就开启 goruntine. 如楼上说的, 基于业务 | 
|  |      8Mithrandir OP @22too 嗯,有道理 | 
|  |      9gamexg      2019-12-05 18:38:13 +08:00 一般是一个 goruntine  到底, 因为虽然 goruntine、chan 成本低,但是也是有成本,没必要多开一个浪费资源。 但是一些特殊情况下会单独开个 goruntine , 例如客户一个连接发出多个请求,其中部分请求类型依赖外部服务并且可能高耗时。 在客户端可以接受乱序回应的情况下,会使用新 goruntine 处理,根据不用情况,可能考虑提供线程池等方式处理请求。 | 
|  |      10index90      2019-12-05 18:56:03 +08:00  1 给 blog 开发一个接口,根据文章 id,查询文章内容及评论。 初级后端开发:根据 id 查询文章内容,根据 id 查询评论 传统后端开发:根据 id 组成 join 查询语句,把查询丢给 db 处理 现代后端开发:根据 id 同时查询文章内容和评论,组合并返回 |