c++ 11的condition_variables可以用来同步进程吗?

Can C++11 condition_variables be used to synchronize processes?

本文关键字:同步 进程 condition variables c++      更新时间:2023-10-16

我正在努力学习c++ 11的std::condition_variable。我在cppreference.com和cplusplus.com上读过文章,以及c++ 0x没有信号量?.

我的问题,我认为没有回答的三篇文章,是:可以用std::mutexstd::condition_variable的组合创建的"信号量"(见答案c++ 0x没有信号量?如何同步线程?)被用来同步进程之间的方式posix命名的信号量可以?我不清楚这个功能是否可以实现,因为我没有看到在创建这些对象时使用的"可共享"信息,例如名称。

不,这意味着同步一个进程内的线程,而不是进程。

进程间通信是通过共享文件实现的。进程间互斥锁或共享内存只是一个文件(例如在临时文件夹中创建),用于在两个进程之间交换信息(数据、锁)。boost::interprocess提供了一个很好的实现(它不需要任何链接,代码是在飞行中编译的,你只需要包括它)。

要同步进程,您应该查看boost::interprocess。它提供同步机制。它提供了一个进程间信号量

在标准c++中最接近IPC(进程间通信)的是file io。

标准c++中没有内存IPC