shm php,php实现共享内存进程通信函数之_shm
前面介绍了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相关推荐
- shm php,php实现共享内存进程通信函数(_shm)
这篇文章主要介绍了关于php实现共享内存进程通信函数(_shm),有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 前面介绍了php实现共享内存的一个函数shmop,也应用到了项目中,不过 ...
- shm php,php实现共享内存进程通信函数之shm
前面介绍了php实现共享内存的一个函数shmop,也应用到了项目中,不过shmop有局限性,那就是只支持字符串类型的:sem经过我的测试,是混合型,支持数组类型,可以直接存储,直接获取,少了多余的步骤 ...
- Linux学习之系统编程篇:shm 共享内存及其操作函数
一.shm 和 mmap 的区别 (1)mmap 是在磁盘上建立一个文件,每个进程地址空间中开辟出一块空间进行映射.shm 每个进程最终会映射到同一块物理内存.shm 保存在物理内存,这样读写的速度最 ...
- 如何理解“不要通过共享内存来通信,而应该通过通信来共享内存”?
不要通过共享内存来通信,而应该通过通信来共享内存 这是一句风靡golang社区的经典语,对于刚接触并发编程的人,该如何理解这句话? 如何理解"不要通过共享内存来通信,而应该通过通信来共享内存 ...
- 以通信方式共享内存,不要以共享内存方式通信(2)
继续以"以通信方式共享内存,不要以共享内存方式通信"这句话展开. 从云原生开始. 云原生是面向微服务的架构,而消息传递是微服务交互的媒介,每个工人都接触过关于消息队列的概念,正是消 ...
- 共享内存进程线程混合通信
多线程共享内存混合编程 /*threadWrite线程向共享内存写数据,threadRead线程从共享内存读数据*/ /*读线程必须等待写线程执行完才开始*/ #include <stdio.h ...
- 共享内存(进程间的通信方式)
目录 1.共享内存的特点 2.函数接口 3.有关共享内存的系统命令 1.共享内存的特点 (1)共享内存是一种最高效的进程间的通信方式,进程可以直接读写内存,而进程之间不需要通过任何数据的拷贝. (2) ...
- shmget物理内存_共享内存的常用函数详解shmget shmat
共享内存区域是被多个进程共享的一部分物理内存.如果多个进程都把该内存区域映射到自己的虚拟地址空间,则这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信.共享内存是进程间共享数据的一种最 ...
- System V 共享内存 和 系列函数
跟消息队列一样,共享内存也有自己的数据结构,如下: struct shmid_ds { struct ipc_perm shm_perm; /* Ownership and permission ...
最新文章
- 基于机器学习的捡球机器人设计与实现(探索)第3篇——opencv基础知识学习(2019-02-02)
- BugkuCTF-Misc:宽带信息泄露
- 埃尔米特(Hermite)插值
- c语言复数的运算实验报告,C语言复数的运算(实验报告).doc
- 分析业务模型-类图(Class Diagram)(上)
- 进行优化处理(WinXP),加快系统运行速度
- AWS推出RoboMaker,可构建智能机器人应用程序
- nio2 java_java nio2
- linux 删除已输入的命令
- 40. 后台模块开发(5)
- 通过“”斐波那契数列“”学习函数递归
- navicat 快捷键
- 智能家居通信协议科普,什么户型选择什么产品一文看懂
- matlab做误差棒图,matlab绘制误差棒
- 在MinGW中构建GCC交叉编译器和GDB交叉调试器
- 质性数据分析软件NVivo教程:自动编码情绪如何运作?
- 肯德尔系数怎么分析_北京师范大学心理学考研 专硕真题分析+考试大纲
- .Net培训班课程体系
- 使用for循环编写反方向正直角三角形
- 弘辽科技:胡润研究院发布《2020胡润中国10强电商》榜单,第二名很意外