gpt4 book ai didi

c++ - 在 C++ 中使用共享内存的远程代理

转载 作者:太空宇宙 更新时间:2023-11-04 09:09:33 26 4
gpt4 key购买 nike

假设我有一个守护进程,它通过共享内存将其内部状态共享给各种应用程序。进程可以将 IPC 消息发送到命名管道上的守护进程以执行各种操作。在这种情况下,我想为客户端创建一个 C++ 包装器类,充当一种“远程代理”,以向客户端隐藏一些血淋淋的细节(同步、消息传递等),并使其更容易隔离代码单元测试。

我有三个问题:

  • 一般来说,这是一个好主意/方法吗?
  • 对于此设置中的同步,您有任何提示或陷阱吗?或者使用标准的读写互斥设置就足够了吗?
  • 有没有我应该考虑的框架?

所讨论的目标是具有 2.18 内核的嵌入式 linux 系统,因此在内存和编译器功能方面存在限制。

最佳答案

Herb Sutter 发表了一篇文章 Sharing Is the Root of All Contention我基本同意;如果您使用的是共享内存架构,您就会面临很多潜在的线程问题。

客户端/服务器模型可以使事情变得非常简单,其中客户端写入指定的服务器管道,服务器在唯一的客户端管道(或使用套接字)上写回。它还将使单元测试更简单(因为您不必担心测试共享内存),可以避免互斥等。

关于c++ - 在 C++ 中使用共享内存的远程代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/912269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com