共享内存是进程间通信(Inter Process Communication)的最快方式。linux共享内存有两种方式:
第一种:mmap方式,适用场景:父子进程之间,创建的内存非常大时
第二种:shmget方式,适用场景:同一台电脑上不同进程之间,创建的内存相对较小时
两种方式的文档网上都有很多,随便一抓一把。
通病:共享内存没有自带的同步机制,需要借助其他方式来进行同步。
nginx使用了mmap方式,并且对windows和linux都做了共享内存简单封装,需要使用可以参照学习一下(linux:\src\os\unix\ngx_shmem.h和\src\os\unix\ngx_shmem.c windows:\src\os\win32\ngx_shmem.h和windows:\src\os\win32\ngx_shmem.c

本文介绍了Linux下两种共享内存的方式:mmap和shmget。mmap适用于父子进程间的大内存共享,而shmget则用于同一台电脑上的不同进程间较小内存的共享。文中提到这两种方式都没有自带同步机制,需要额外实现同步。同时,还提到了nginx如何使用mmap来实现跨平台的共享内存。
4058

被折叠的 条评论
为什么被折叠?



