前面介绍了php实现共享内存的一个函数shmop,也应用到了项目中,不过shmop有局限性,那就是只支持字符串类型的;sem经过我的测试,是混合型,支持数组类型,可以直接存储,直接获取,少了多余的步骤格式转换。不过sem有大小限制,shmop可以设置很大很大很大~~~不过也可以再php.ini修改相关配置。

$key = 0x4337b124;

$shar_key = 1;

// 创建一个共享内存

$shm_id = shm_attach($key, 1024, 0666); // resource type

if ($shm_id === false) {

die('Unable to create the shared memory segment' . PHP_EOL);

}

//设置一个值

shm_put_var($shm_id, $shar_key, 'test');

//删除一个key

shm_remove_var($shm_id, $shar_key);

//获取一个值

$value = shm_get_var($shm_id, $shar_key);

var_dump($value);

//检测一个key是否存在

var_dump(shm_has_var($shm_id, $shar_key));

//从系统中移除

shm_remove($shm_id);

//关闭和共享内存的连接

shm_detach($shm_id);

注意:$shar_key 只能是 int 型的参数。

详细说明

shm_attach

打开建立共享内存空间。

语法: int shm_attach(int key, int [memsize], int [perm]);

返回值: 整数

函数种类: 操作系统与环境

内容说明: 本函数用来打开或者建立共享内存空间。参数 key 为这部分的键。参数 memsize 可省略,表示所需最小的内存空间 (单位为 byte 位组),默认值在 php3.ini 或 php.ini 中的 sysvshm.init_mem 配置,若无配置则为 10000 bytes。参数 perm 亦可省略,为该内存空间的使用权限,默认值为 666。返回值为共享内存的ID 值,可供程序使用。

shm_detach

中止共享内存空间链接。

语法: int shm_detach(int shm_identifier);

返回值: 整数

函数种类: 操作系统与环境

内容说明: 本函数用来中止与共享内存空间的链接。参数 shm_identifier 即为欲停止部分的共享内存 ID 值。

shm_remove

清除内存空间。

语法: int shm_remove(int shm_identifier);

返回值: 整数

函数种类: 操作系统与环境

内容说明: 本函数用来清除共享内存空间的所有资料。参数 shm_identifier 即为欲停止部分的共享内存 ID 值。

shm_put_var

加入或更新内存空间中的变量。

语法: int shm_put_var(int shm_identifier, int variable_key, mixed variable);

返回值: 整数

函数种类: 操作系统与环境

内容说明: 本函数可用来增加或者修改内存空间中变量值。参数 shm_identifier 为欲增加修改的共享内存 ID 值。参数 variable_key 为欲增加修改的变量名称键。参数 variable 为变量的内容,变量的类型可以是倍精确数 (double)、整数 (integer)、字符串 (string) 或者是数组 (array)。

shm_get_var

取得内存空间中指定的变量。

语法: mixed shm_get_var(int shm_identifier, int variable_key);

返回值: 混合类型资料

函数种类: 操作系统与环境

内容说明: 本函数可用来取得内存空间中指定的变量值。参数 shm_identifier 为欲取得的共享内存 ID 值。参数 variable_key 为欲取得的变量名称键。返回值即为指定变量键的值。

shm_remove_var

删除内存空间中指定的变量。

语法: int shm_remove_var(int id, int variable_key);

返回值: 整数

函数种类: 操作系统与环境

内容说明: 本函数可用来删除内存空间中指定的变量值。参数 shm_identifier 为欲除去的共享内存 ID 值。参数 variable_key 为欲删除的变量名称键。

shm php,php实现共享内存进程通信函数之_shm相关推荐

  1. shm php,php实现共享内存进程通信函数(_shm)

    这篇文章主要介绍了关于php实现共享内存进程通信函数(_shm),有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 前面介绍了php实现共享内存的一个函数shmop,也应用到了项目中,不过 ...

  2. shm php,php实现共享内存进程通信函数之shm

    前面介绍了php实现共享内存的一个函数shmop,也应用到了项目中,不过shmop有局限性,那就是只支持字符串类型的:sem经过我的测试,是混合型,支持数组类型,可以直接存储,直接获取,少了多余的步骤 ...

  3. Linux学习之系统编程篇:shm 共享内存及其操作函数

    一.shm 和 mmap 的区别 (1)mmap 是在磁盘上建立一个文件,每个进程地址空间中开辟出一块空间进行映射.shm 每个进程最终会映射到同一块物理内存.shm 保存在物理内存,这样读写的速度最 ...

  4. 如何理解“不要通过共享内存来通信,而应该通过通信来共享内存”?

    不要通过共享内存来通信,而应该通过通信来共享内存 这是一句风靡golang社区的经典语,对于刚接触并发编程的人,该如何理解这句话? 如何理解"不要通过共享内存来通信,而应该通过通信来共享内存 ...

  5. 以通信方式共享内存,不要以共享内存方式通信(2)

    继续以"以通信方式共享内存,不要以共享内存方式通信"这句话展开. 从云原生开始. 云原生是面向微服务的架构,而消息传递是微服务交互的媒介,每个工人都接触过关于消息队列的概念,正是消 ...

  6. 共享内存进程线程混合通信

    多线程共享内存混合编程 /*threadWrite线程向共享内存写数据,threadRead线程从共享内存读数据*/ /*读线程必须等待写线程执行完才开始*/ #include <stdio.h ...

  7. 共享内存(进程间的通信方式)

    目录 1.共享内存的特点 2.函数接口 3.有关共享内存的系统命令 1.共享内存的特点 (1)共享内存是一种最高效的进程间的通信方式,进程可以直接读写内存,而进程之间不需要通过任何数据的拷贝. (2) ...

  8. shmget物理内存_共享内存的常用函数详解shmget shmat

    共享内存区域是被多个进程共享的一部分物理内存.如果多个进程都把该内存区域映射到自己的虚拟地址空间,则这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信.共享内存是进程间共享数据的一种最 ...

  9. System V 共享内存 和 系列函数

    跟消息队列一样,共享内存也有自己的数据结构,如下: struct shmid_ds { struct ipc_perm shm_perm;    /* Ownership and permission ...

最新文章

  1. 基于机器学习的捡球机器人设计与实现(探索)第3篇——opencv基础知识学习(2019-02-02)
  2. BugkuCTF-Misc:宽带信息泄露
  3. 埃尔米特(Hermite)插值
  4. c语言复数的运算实验报告,C语言复数的运算(实验报告).doc
  5. 分析业务模型-类图(Class Diagram)(上)
  6. 进行优化处理(WinXP),加快系统运行速度
  7. AWS推出RoboMaker,可构建智能机器人应用程序
  8. nio2 java_java nio2
  9. linux 删除已输入的命令
  10. 40. 后台模块开发(5)
  11. 通过“”斐波那契数列“”学习函数递归
  12. navicat 快捷键
  13. 智能家居通信协议科普,什么户型选择什么产品一文看懂
  14. matlab做误差棒图,matlab绘制误差棒
  15. 在MinGW中构建GCC交叉编译器和GDB交叉调试器
  16. 质性数据分析软件NVivo教程:自动编码情绪如何运作?
  17. 肯德尔系数怎么分析_北京师范大学心理学考研 专硕真题分析+考试大纲
  18. .Net培训班课程体系
  19. 使用for循环编写反方向正直角三角形
  20. 弘辽科技:胡润研究院发布《2020胡润中国10强电商》榜单,第二名很意外

热门文章

  1. Windows使用cmd静音,用DOS指令给Windows静音
  2. 【项目设计】基于WebSocket的Web聊天室
  3. 【面试】Spring MVC面试题
  4. fullcalendar 使用配置说明
  5. 浏览器渲染与浏览器内核相关杂谈
  6. 家用计算机做服务器,将服务器CPU安装到家用PC上合适?_服务器_服务器产业-中关村在线...
  7. EasyExcel文件导出错误解决
  8. Python爬虫递归调用爬取动漫美女图片
  9. 我的开源视音频项目汇总
  10. 修改hosts文件无法保存,只能另存为txt的解决方法