首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在golang中优先使用goroutine

在golang中优先使用goroutine
EN

Stack Overflow用户
提问于 2018-12-22 04:09:24
回答 2查看 2.7K关注 0票数 1

我正在用golang编写一个低延迟、高吞吐量的网络。它在主goroutine中有接受器(接受传入的连接)。并且它将传入的连接传递给'n‘个工作者goroutines。

在这种情况下,为了不丢弃连接,我希望接受者goroutine优先于其他goroutine,这样连接就不会被丢弃。或者至少这个接受者goroutine不应该被其他worker goroutine驱逐。

我如何确保这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-31 06:30:00

我已经在golang上创建了线程池。这应该很容易让人将某些goroutine优先于其他goroutine。

https://github.com/vijayviji/executor

票数 1
EN

Stack Overflow用户

发布于 2018-12-23 00:58:01

如果您优先于接受连接而不是“完成工作”,请考虑随着时间的推移会发生什么。你将创建一个积压的工作,同时接受越来越多的连接,带来更多的工作要做。这只会增加服务器上的负载。

相反,要专注于高效地编写工作程序代码,以便快速完成工作,从而释放资源来处理新的连接。

如果您担心您的服务器无法处理工作负载,则应该考虑对客户端进行速率限制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53890318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档