如何控制正在运行的工作进程的数量?

发布于 2024-08-20 14:06:57 字数 167 浏览 5 评论 0原文

erlang 中 gen_server 的设计模式是什么,用于创建固定数量的工作进程并为它们提供“作业”来执行某些操作?每个工作进程都与具有连接限制的外部服务进行通信。 “工作”的数量被认为是无限的。在 C 中,我会通过创建一个工作线程池和一个异步来做到这一点。由互斥锁保护的队列(容量有限),为池提供来自提交者的作业。

What is a design pattern in erlang in terms of gen_server to create a fixed number of worker processes and feed them with 'jobs' to perform some actions ? Each worker process talks with an external service which has connection limits. Number of 'jobs' considered to be unlimited. In C I'd do that by creating a pool of worker threads and an async. queue (with limited capacity) guarded by mutex to feed the pool with jobs from the submitter.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

⒈起吃苦の倖褔 2024-08-27 14:06:57

让 gen_server 在您的工作进程上放置一个监视器,当一个进程死亡时(作业完成或崩溃)会产生另一个进程。

Have the gen_server put a monitor on your worker processes, and when one dies (either job finished, or crash) spawn another one.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文