我需要在同一台机器上的两个进程之间进行一些高比特率流式传输。为了避免过度复制,我的想法是分配一个大的共享内存缓冲区(通过CreateFileMapping),它将包含实际的数据,并使用管道控制消息。共享内存在Windows中的进程是否一致?
这个想法是,生产者将写入一段数据到共享内存,然后通过管道发送消息,有效地将所有权传递给消费者。消费者直接在共享内存上执行业务,然后发送另一条消息将内存释放回生产者。无限重复。
这种同步机制是否保证在内存一致性方面是安全的?也就是说,消费者是否可以保证在收到控制信息后看到制作人写作的完整效果?
这是关键点:“实际上IPC控制信息就足够了” –