Multithreading 无限循环的设计模式+;线程化服务/接口?

Multithreading 无限循环的设计模式+;线程化服务/接口?,multithreading,design-patterns,queue,embedded-linux,infinite-loop,Multithreading,Design Patterns,Queue,Embedded Linux,Infinite Loop,差不多20年了。在Embedded/C++dev中,我经常会陷入一个无限循环的相同情况,其中填充了不同的线程服务类(通过抽象工厂/单例设计模式启动/停止),如TCP套接字、CAN总线、串行链路、日志记录、电源、FDIR、数据池、遥测/电信和引擎(命令解析器设计模式),所有这些服务通过RX/TX队列连接。 这通常导致服务接口类被全局实例化(一次,当然是单例实例化)(不要尖叫!)和/或拥有依赖于C/Glib g_main_loop()的无限循环(不要叫喊!) 虽然我经常阅读这种被称为生产者/工作者/

差不多20年了。在Embedded/C++dev中,我经常会陷入一个无限循环的相同情况,其中填充了不同的线程服务类(通过抽象工厂/单例设计模式启动/停止),如TCP套接字、CAN总线、串行链路、日志记录、电源、FDIR、数据池、遥测/电信和引擎(命令解析器设计模式),所有这些服务通过RX/TX队列连接。 这通常导致服务接口类被全局实例化(一次,当然是单例实例化)(不要尖叫!)和/或拥有依赖于C/Glib g_main_loop()的无限循环(不要叫喊!)

虽然我经常阅读这种被称为生产者/工作者/客户机的体系结构,但我很难找到合适的设计模式作为这种体系结构的最佳实践或代码参考/框架

我可能缺少适当的词汇(我是90% C++自学)和/或好的起点……/P>

由于StAcExpBube禁止模糊问题,我猜我的问题可以在理解主()函数中应该(或不)的情况下减少(例如,在何处/何时构造/开始/停止接口类)和/或什么是一个好的参考代码来读取/引用一个围绕现代C++中无限循环(?)/p的多线程/排队服务? 因此,这里确实是一个哲学问题,我希望我能以一种清晰的方式来描述它……如果不是,请帮助我适当地重新表述它

谢谢,

干杯,

这是一个好问题,但我更愿意看到它适合我。您可以通过花一些时间进行研究(类似的Q/As已经存在于那里)、格式化(方法名称如代码等)和拼写来进一步改进它,这将提高您获得好评的机会。