boost-interprocess

    1热度

    1回答

    我正在实现一对进程间通信的类,其中一个进程将是唯一的作者,并且会有很多读者。一个班级处理阅读;一个处理写作。为了防止任何其他进程成为作者,我想要一个作家类的单个对象,它在整个生命周期内保持一个可升级的锁在boost::named_upgradable_mutex上。为此,作者类有一个类型为boost::interprocess::upgradable_lock的成员变量,当构造对象时,这个成员变量

    2热度

    1回答

    我编写了一个小程序,它将boost :: interprocess :: container字符串写入共享内存,另一个程序将其读取。 我收到如下链接错误: g++ SharedMemTest.cpp -L /usr/lib/x86_64-linux-gnu/librt.a /tmp/cc5v7WKj.o: In function `boost::interprocess::detail::mut

    2热度

    2回答

    我的目标是创建一个名为SharedMemory的模板单例类,它可以使用boost :: interprocess :: managed_shared_memory将给定的数据结构存储在共享内存中的映射中。 #ifndef SHARED_MEMORY_H_ #define SHARED_MEMORY_H_ #include <boost/interprocess/managed_shared_

    8热度

    2回答

    我有一个存储过程mysql这是执行需要同步的任务,如果两个应用程序调用存储过程,只有一个可以访问一段代码来执行任务,保持另一个被阻止,直到第一个完成任务。 DELIMITER $$ CREATE PROCEDURE SP_GEN_ID(IN NAME VARCHAR(20)) BEGIN DECLARE maxLen int default 0; START TRANSACTIO

    5热度

    2回答

    目前,我有2个使用message_queue和shared_memory格式boost进行通信的进程。一切都如工作。 现在我需要使这个过程中的一个多线程(再次感谢提升),并且我想知道是否需要在线程之间使用保护机制(例如互斥体),或者boost :: interprocess库已经提供了一个保护机制? 我没有在boost文档上找到任何信息。顺便说一句,我使用提升1.40。 在此先感谢。

    3热度

    2回答

    您需要一个10^10 4个字节的整数数组作为查找表。加载到RAM将需要40GB,这是不可行的。初始化完成后,您永远不需要写入该数组。您需要从单个进程的多个线程同时读取此数组中随机位置的单个整数值。你保证在64位平台上。这个查询表的最快实现是什么?使用常规文件读取功能或例如提升内存映射文件?

    2热度

    1回答

    我尝试做以下事情: 创建一个“大”阵列(1个000 000 +对象)与升压::进程间图书馆 我的代码包含了共享内存以下: managed_shared_memory testarray(create_only, "Test", 45000000); typedef std::pair<SingleField, uint32_t> TestType; TestType * test = tes

    11热度

    1回答

    我有基于被写入到使用boost::asio仅仅作为其输入数据的源,因为大多数我们的对象的应用程序是网络通信。由于某些特定的要求,我们现在需要使用共享内存作为输入方法。我已经编写了共享内存组件,它工作得相当好。 问题是如何处理从共享内存进程到消费应用程序的数据可供读取的通知 - 我们需要处理现有输入线程中的数据(使用boost::asio),而且我们还需要不阻止输入线程等待数据。 我已经通过引入到将

    0热度

    1回答

    我想知道是否可以通过Boost.Interprocess以跨平台方式启动一个新流程?另外我想知道是否有可能启动像echo这样的流程?

    0热度

    1回答

    会发生什么持有boost::interprocess::file_lock()? 我应该期望OS保持我的文件锁定吗?或者当文件关闭时,操作系统是否会透明地取消注册锁定? Windows和POSIX的经验,将不胜感激。 编辑 我的主要目标是要截断一个配置文件,并改写它。该文件的第二个目的是防止其他等效的守护程序启动。所以,如果有使用升压或C++ STL截断文件的另一种方式,但不关闭它,我所有的耳朵: