Web Analytics
yangyang

码农兼一个普普通通小青年

All Posts in 2025.8


C# 进程间通信深度解析:命名管道、TCP/IP 与内存映射文件

在现代软件架构中,无论是模块化的单体应用、面向服务的架构(SOA),还是日益普及的微服务部署,进程间通信(Inter-Process Communication, IPC)都已从一个简单的实现细节,演变为影响系统性能、安全性与可维护性的基石性架构决策。在此背景下,选择一种合适的 IPC 机制,不仅关乎数据传输的效率,更直接决定了整个系统的响应能力、资源消耗和技术债务。本文介绍了Windows平台上三种主流的IPC通讯方式:命名管道(Named Pipes), TCP/IP 套接字(TCP/IP Sockets),和内存映射文件(Memory-Mapped Files, MMF),给出了在一对一通讯场景下的企业级实现,并基于BenchmarkDotNet,使用乒乓测试的方式测试了三者的性能,结果显示,在本机IPC模式下,小字节的数据(16B,256B)传输下,内存映射文件的传输效率具有绝 …

NamedPipe IPC MMF TCPIP

使用内存映射文件实现进程间通讯

在前文浅谈内存映射文件中详细介绍了什么是内存映射文件(Memory-Mapped File, MMF),以及内存映射文件的用法。在其诸多应用中,很重要的一个就是进程间通讯(Inter-Process Communication,IPC)。内存映射文件允许将文件内容直接映射到进程的虚拟地址空间,使得应用程序能够像访问内存一样访问文件数据。但要正确和高效地使用内存映射文件进行进程间通讯则需要一些技巧,它需要处理多个进程对同一块内存区域进行高效的读写问题,这里就自然涉及到竞争和同步。本文首先介绍了一个简单的一对一的使用MMF进行进程间单向通讯的例子,紧接着指出其中的低效,然后通过引入环形队列数据结构来分隔读和写,从而达到移除锁的使用,进而大幅提高效率。最后在此基础上介绍了一对一双向通讯,以及一对多通讯的实现思路。 …

IPC Circular Queue MMF SPSC SPMC