C++ 查找使用boost进程间共享内存的进程数
我有一个生产者进程,它将更新一个共享变量,许多消费者进程将读取共享变量的更新值 生产者只能在所有使用者都已读取的情况下更新共享变量。为了实现这一点,我需要知道可以动态变化的用户进程的数量。实现这一目标的最佳方式是什么 我可以尝试在使用者进程初始化时增加共享变量,在使用者进程关闭时减少共享变量,从而保持使用者进程的计数C++ 查找使用boost进程间共享内存的进程数,c++,boost,shared-memory,boost-interprocess,C++,Boost,Shared Memory,Boost Interprocess,我有一个生产者进程,它将更新一个共享变量,许多消费者进程将读取共享变量的更新值 生产者只能在所有使用者都已读取的情况下更新共享变量。为了实现这一点,我需要知道可以动态变化的用户进程的数量。实现这一目标的最佳方式是什么 我可以尝试在使用者进程初始化时增加共享变量,在使用者进程关闭时减少共享变量,从而保持使用者进程的计数 但是,如果使用者进程被终止或崩溃,如何处理该场景。是否有办法找到共享内存的进程数?这里的问题是,如果你问两个C++开发者“什么是实现X的最好方法”,你会得到三个不同的答案。也许使用
但是,如果使用者进程被终止或崩溃,如何处理该场景。是否有办法找到共享内存的进程数?这里的问题是,如果你问两个C++开发者“什么是实现X的最好方法”,你会得到三个不同的答案。也许使用看门狗/控制器服务,或者是一个选择的领导者/法定人数,在一个只有心跳的对等模型中。或者认为如果一个进程意外死亡,它是一个不可恢复的错误。可能还能够设置错误处理程序,以便在某些情况下对关键中止执行“足够”的工作。我知道您希望问题简短。但它太开放了,无法与之合作。通常,人们会创建这样的系统,特别是如何启动客户流程。例如,在windows中,如果“leader”进程对每个进程调用CreateProcess,它可以轻松地跟踪它们。请参阅GetExitCodeProcess。