首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >1线程对5线程用于分布式系统通信?

1线程对5线程用于分布式系统通信?
EN

Stack Overflow用户
提问于 2018-09-07 15:15:25
回答 1查看 76关注 0票数 0

我正在研究一个小型网络系统原型,在它的最低层,有一个软件“父”进程,与5个软件“子”进程来回通信。

我正在使用ZeroMQ在进程之间进行通信。

我的问题是多线程处理与单线程处理的问题。

在这种系统中,父线程中处理往来于子进程的消息的单个线程会比5个线程(每个进程一个线程)更有效吗?

对于单线程,我担心的是,当父进程处理一条消息时,消息将开始堆积。

对于多线程,如果扩展这个系统架构,我会关注上下文切换和性能问题。想想50位家长,每件5条,所以至少250条。

线程被写入ZeroMQ标准,没有锁、关键部分、共享内存等等。

我使用Linux和C++。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-11 20:46:13

您可以在父服务器上运行消息队列,这也应该允许它在按照事件到达的顺序处理事件时,不会被子队列淹没。此外,您可以将其扩展到一个简单的发送-确认模型,在该模型中,子节点将等待消息被确认,然后再发送进一步的消息,这样您就可以允许父消息控制其接收消息的速率。

关于要运行的线程数,我同意您的意见,因为您增加了父程序的复杂性。

主要的因素,我相信,将是线程需要共享任何数据,或相互通信。如果不是这样,问题就简化了,因为您可以使用每一个或更多个子线程,只需从队列中获取消息。

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

https://stackoverflow.com/questions/52225430

复制
相关文章

相似问题

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