当前位置: 首页 > wzjs >正文

查询网站建立时间跳转到手机网站

查询网站建立时间,跳转到手机网站,免费文字一键生成图片,西安网站制作哪家公司好进程间通信(IPC)的共享内存机制允许不同进程直接访问同一块物理内存区域,是速度最快的IPC方式(无需数据拷贝)。 一、共享内存核心概念 1. 基本原理 共享内存区域:由内核管理的特殊内存段,可被…

进程间通信(IPC)的共享内存机制允许不同进程直接访问同一块物理内存区域,是速度最快的IPC方式(无需数据拷贝)。


一、共享内存核心概念

1. 基本原理
  • 共享内存区域:由内核管理的特殊内存段,可被多个进程映射到自身地址空间。
  • 零拷贝:进程直接读写内存,无需通过内核缓冲区(如管道/消息队列需要)。
  • 需同步:必须配合信号量/互斥锁等机制,避免数据竞争。
2. 生命周期
  • 创建shmget(System V)或 shm_open(POSIX)
  • 映射shmatmmap
  • 销毁shmctlshm_unlink

二、System V 共享内存基础示例

1. 创建共享内存
#include <sys/ipc.h>
#include <sys/shm.h>int main() {key_t key = ftok("shmfile", 65); // 生成唯一keyint shmid = shmget(key, 1024, 0666|IPC_CREAT); // 创建1024字节共享内存char *str = (char*) shmat(shmid, (void*)0, 0); // 映射到进程地址空间sprintf(str, "Hello Shared Memory!"); // 写入数据shmdt(str); // 解除映射return 0;
}
2. 另一个进程读取数据
int main() {key_t key = ftok("shmfile", 65);int shmid = shmget(key, 1024, 0666);char *str = (char*) shmat(shmid, (void*)0, 0);printf("Data read: %s\n", str);shmdt(str);shmctl(shmid, IPC_RMID, NULL); // 销毁共享内存return 0;
}

三、POSIX 共享内存进阶示例

1. 使用 mmapshm_open
#include <sys/mman.h>
#include <sys/stat.h>
#include <fcntl.h>int main() {const char* name = "/my_shm";int fd = shm_open(name, O_CREAT | O_RDWR, 0666); // 创建POSIX共享内存对象ftruncate(fd, 1024); // 设置大小char *ptr = mmap(0, 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);sprintf(ptr, "Hello POSIX SHM!");munmap(ptr, 1024);close(fd);shm_unlink(name); // 删除共享对象return 0;
}
2. 配合信号量同步
#include <semaphore.h>// 写入进程
sem_t *sem = sem_open("/my_sem", O_CREAT, 0666, 1); // 初始化信号量为1
sem_wait(sem); // P操作
sprintf(ptr, "New Data with Sync");
sem_post(sem); // V操作// 读取进程
sem_t *sem = sem_open("/my_sem", 0);
sem_wait(sem);
printf("Data: %s", ptr);
sem_post(sem);

四、深入理解共享内存

1. 性能优势场景
  • 大数据传输:如视频处理、科学计算
  • 实时性要求高:高频交易系统
2. 风险与缺陷
  • 数据竞争:必须强制同步
  • 内存泄漏:需显式销毁共享段
  • 安全风险:所有进程均可访问
3. 高级技术扩展
  • 匿名共享内存mmap 使用 MAP_ANONYMOUS,适用于父子进程
  • 共享内存数据库:Redis的持久化内存设计
  • 跨网络共享内存:如RDMA(远程直接内存访问)

五、关键系统调用对比

函数用途System VPOSIX
shmget创建/获取共享内存✔️
shmat映射共享内存✔️
shmdt解除映射✔️
mmap内存映射文件/共享内存✔️
shm_open创建POSIX共享内存对象✔️

通过上述示例和解析,可以掌握共享内存的核心原理与实践技巧。实际开发中需结合场景选择System V或POSIX标准,并始终关注同步问题。


文章转载自:

http://49U2XN3H.jsxrm.cn
http://hCUMFCaS.jsxrm.cn
http://zaKLHWs3.jsxrm.cn
http://gkJ4gt62.jsxrm.cn
http://H845rQrK.jsxrm.cn
http://9wtEaiOG.jsxrm.cn
http://8TPNnyZP.jsxrm.cn
http://5foh2XZj.jsxrm.cn
http://1Kqkw3wL.jsxrm.cn
http://SFK5ZBzk.jsxrm.cn
http://QSOqlZtC.jsxrm.cn
http://jOGiay0z.jsxrm.cn
http://14Jq5ik3.jsxrm.cn
http://G3PI3D0c.jsxrm.cn
http://nzhQz3pA.jsxrm.cn
http://pw8gsqcy.jsxrm.cn
http://gaTA2IEM.jsxrm.cn
http://YZ05pFD7.jsxrm.cn
http://CdwLk9Ch.jsxrm.cn
http://0pHxOPDa.jsxrm.cn
http://b5nXwo7Z.jsxrm.cn
http://wrSAA9Vw.jsxrm.cn
http://PMCPIisM.jsxrm.cn
http://iCWNngFb.jsxrm.cn
http://qankhhcO.jsxrm.cn
http://tBrUgYJs.jsxrm.cn
http://o7OlgBPA.jsxrm.cn
http://GprxAt7R.jsxrm.cn
http://tRnlKJur.jsxrm.cn
http://rdL5ljA5.jsxrm.cn
http://www.dtcms.com/wzjs/648253.html

相关文章:

  • 吉野家网站谁做的如果熊掌号做的不好会不会影响网站
  • 织梦网站网上商城怎么推广
  • php驾校网站源码wordpress 免签约支付宝
  • 免费网站软件下载大全2018王健林亏60亿做不成一个网站
  • 域名对网站有什么影响微信开放平台注册
  • 示范高校建设网站柳州网站建设11
  • 住房和城乡建设部网站公告佛山网站建设报价
  • 网站建设售后协议wordpress取消categore
  • 毕业设计网站建设软件项目一级建设造师网站
  • 用深度liunx做网站第一ppt课件免费下载官网
  • 百度站长平台安卓版电子商务网站建设的盈利模式
  • 做移动网站优化软件实力网站优化公司首选
  • 百度站长提交网址官方小程序
  • 东莞品牌型网站建设网站备案怎么查
  • 网站推广实施计划万网云服务器怎么上传网站
  • 织梦网暂时关闭网站潍坊做网站优化
  • 网站创建桌面快捷方式众志seo
  • 图书馆评估定级关于网站建设标准wordpress爆破字典
  • 新网站域名备案流程天猫建设网站的目的
  • 注册一个公司网站需要多少钱网站打开很慢
  • 做一个网站团队需要哪些人员ui设计页面布局和功能
  • 网站有什么优势学校网站建设工作
  • 塑胶包装东莞网站建设中牟建设工程信息网站
  • 网站怎么做英语和中文的大连建站平台
  • 厦门seo广东seo推广贵不贵
  • 有那个网站做简历模板wordpress 文章排序插件
  • 上海建设部门网站哪建设网站
  • 做品牌形象网站wordpress 自定义内容类型 pan
  • 宝山品牌网站建设成都哪家公司做网站
  • 做网站用空间好还是服务器好网站建设方案论文1500