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

公司网站建设入什么费用中信建设有限责任公司内部网站

公司网站建设入什么费用,中信建设有限责任公司内部网站,外包优化是什么意思,免费自助建站排名1. 共享内存的基本概念 共享内存是一种允许不同进程直接访问同一块内存区域的机制。与其他IPC机制#xff08;如管道、消息队列#xff09;相比#xff0c;共享内存具有以下优点#xff1a; 高效性#xff1a;无需进行数据拷贝#xff0c;数据可以直接在内存中共享如管道、消息队列相比共享内存具有以下优点 高效性无需进行数据拷贝数据可以直接在内存中共享减少了系统调用的开销。灵活性多个进程可以同时读写共享内存适用于需要频繁数据交换的场景。 2. 共享内存的实现方式 在Linux中共享内存主要通过以下两种方式实现 2.1 System V 共享内存 System V 共享内存是最早的共享内存实现方式主要通过以下系统调用进行操作   shmget创建或获取一个共享内存段。 参数 key共享内存的键值唯一标识一个共享内存段size共享内存大小需为系统页大小的整数倍shmflg标志位如IPC_CREAT、IPC_EXCL、权限掩码 返回值成功返回共享内存 ID失败返回 - 1 shmat将共享内存段附加到进程的地址空间。 参数 shmid共享内存 ID由 shmget 返回shmaddr指定映射地址通常设为 NULL由系统自动分配shmflg标志位如SHM_RDONLY 返回值成功返回映射的虚拟地址失败返回 - 1 shmdt将共享内存段从进程的地址空间分离。 参数shmaddr为 shmat 返回的映射地址返回值成功返回 0失败返回 - 1 shmctl控制共享内存段如删除、设置权限等。 参数 cmd操作命令如IPC_RMID删除共享内存段buf存储共享内存元数据的结构体 返回值成功返回 0失败返回 - 1 例子 #include stdio.h #include stdlib.h #include string.h #include unistd.h #include sys/ipc.h #include sys/shm.h#define SHM_SIZE 1024 // 共享内存大小 #define KEY 0x1234 // 共享内存键值// 共享内存结构体 typedef struct {int data[10]; // 数据缓冲区int count; // 数据计数int read_idx; // 读索引int write_idx; // 写索引 } SharedData;int main(int argc, char *argv[]) {int shmid;SharedData *shm_ptr;// 创建共享内存段shmid shmget(KEY, sizeof(SharedData), IPC_CREAT | 0666);if (shmid -1) {perror(shmget failed);exit(1);}// 映射共享内存到当前进程地址空间shm_ptr (SharedData *)shmat(shmid, NULL, 0);if (shm_ptr (void *)-1) {perror(shmat failed);exit(1);}// 初始化共享数据if (argc 1 strcmp(argv[1], producer) 0) {printf(Producer started\n);for (int i 0; i 5; i) {// 等待缓冲区有空间实际应使用信号量同步while (shm_ptr-count 10) sleep(1);// 写入数据shm_ptr-data[shm_ptr-write_idx] i * 10;shm_ptr-write_idx (shm_ptr-write_idx 1) % 10;shm_ptr-count;printf(Produced: %d\n, shm_ptr-data[shm_ptr-write_idx - 1]);sleep(1);}} else if (argc 1 strcmp(argv[1], consumer) 0) {printf(Consumer started\n);for (int i 0; i 5; i) {// 等待缓冲区有数据实际应使用信号量同步while (shm_ptr-count 0) sleep(1);// 读取数据int data shm_ptr-data[shm_ptr-read_idx];shm_ptr-read_idx (shm_ptr-read_idx 1) % 10;shm_ptr-count--;printf(Consumed: %d\n, data);sleep(1);}}// 解除映射生产者/消费者都需要执行if (shmdt(shm_ptr) -1) {perror(shmdt failed);exit(1);}// 生产者删除共享内存段if (argc 1 strcmp(argv[1], producer) 0) {if (shmctl(shmid, IPC_RMID, NULL) -1) {perror(shmctl failed);exit(1);}printf(Shared memory deleted\n);}return 0; } 3、共享内存使用注意事项 同步机制 共享内存不提供任何同步机制需配合信号量、互斥锁等使用如上例应添加信号量控制读写典型组合共享内存 信号量 实现高效同步通信 内存映射与权限 映射后需确保进程有读写权限通过 shmget 的权限掩码控制进程退出时会自动解除映射但共享内存段需显式删除 数据一致性 多进程同时修改数据可能导致竞争条件需通过同步原语保证原子性建议将共享数据封装为结构体避免碎片化访问 系统限制 共享内存大小受限于/proc/sys/kernel/shmmax默认通常为 32MB可通过sysctl -w kernel.shmmax...动态调整或修改/etc/sysctl.conf永久生效
http://www.hkea.cn/news/14330268/

相关文章:

  • seo sem是指什么意思seo技巧分享
  • 如何制作动漫网站模板wordpress时间轴插件
  • 网站建设比较合理的流程织梦网站如何生成伪静态
  • 一起做网商网站怎么样遵义网络科技有限公司
  • 做seo网站优化多少钱网站建设与管理教学视频教程
  • 公司网站域名是什么意思盘锦做网站电话
  • 做淘宝需要知道什么网站全球设计行
  • 怎样建设免费网站软件技术职业生涯规划书
  • 湛江市住房和城乡建设网站宿州网站建设贰聚思诚信
  • 南宁码科网站建设徐州关键字优化资讯
  • 电话推销网站建设上海数据开放网站建设
  • 余姚网站建设yyshj毕业设计博客网站开发
  • 搭建网站的步骤和顺序酒泉建设局网站
  • 给网站做排名优化学什么好处wordpress怎么更改后台路径
  • 青岛网站设计报价免费可商用的cms
  • 合肥市城乡和建设网站单位网站建设制作
  • 网站设计 中高端用什么软件做网站最简单 最方便
  • 最新免费网站源码如何免费建站
  • 黄江镇网站建设公司国内专业的企业展厅设计
  • 龙岗做网站哪里找网站管理与维护的优势
  • 站长统计app软件下载官网wordpress xss漏洞
  • asp网站建设 win7河南省新闻出版学校
  • 网络营销与网站推广的北京注册公司核名网站
  • 建设银行的网站是什么情况宁波seo外包公司
  • 天津通用网站建设收费河南网站建设的公司
  • 保定网络公司网站wordpress微博同步
  • 手机可以做3d动漫视频网站有哪些黑科技广告推广神器
  • 建德市住房和城乡建设局网站怎么更改网站栏目id
  • 怎么做仲博注册网站百度收录查询网址
  • 格豪网络建站公司做网站费用会计处理