php 共享内存学习(shmop函数)
2016-05-31 15:30
225 查看
问题:希望可以在进程间共享变量,为共享数据提供快速访问
解决方案:除了可以使用APC模块,还可以用shmop或System V共享内存
创建id
读取写入
关闭资源
参考:http://www.ibm.com/developerworks/cn/opensource/os-php-shared-memory/
解决方案:除了可以使用APC模块,还可以用shmop或System V共享内存
//创建键 //将一个可访问的文件路径名转换为一个可供 shmop_open() 和其他系统VIPC keys使用的整数,proj参数必须是一个字符串,这个参数其实就是读写方式 //第2个参数传一个字符串, ftok创建一个id $shmop_key = ftok(__FILE__,'b'); echo $shmop_key."<br/>";
创建id
//创建16384字节共享内存块 0600权限 /* * 第2个参数 * 模式 “a”,它允许您访问只读内存段 * 模式 “w”,它允许您访问可读写的内存段 * 模式 “c”,它创建一个新内存段,或者如果该内存段已存在,尝试打开它进行读写 * 模式 “n”,它创建一个新内存段,如果该内存段已存在,则会失败 */ $shmop_id = shmop_open($shmop_key,'c',0600,16384); echo $shmop_id."<br/>";
读取写入
//获取整个共享内存段 后2参数 从第0字节开始读, shmop_size获取$shmop_id的字节大小 $population = shmop_read($shmop_id,0,shmop_size($shmop_id)); echo $population; //处理数据 $births = 3000; $immigrants = 200; $deaths = 2800; $emigrants = 300; $population += ($births + $immigrants - $deaths - $emigrants); //将值存回到共享内存段 第3个参数0表示写入的位置 $shmop_bytes_written = shmop_write($shmop_id,$population,0);
关闭资源
//关闭句柄 shmop_close($shmop_id);
参考:http://www.ibm.com/developerworks/cn/opensource/os-php-shared-memory/
相关文章推荐
- ThinkPHP(7)——数据库操作
- page.php 引入js文件
- php 共享内存学习(APC扩展)
- 深入理解PHP中的count函数
- 使用ftp4j类来实现FTP操作
- PHP bug strtotime
- php学习笔记之字符串处理
- CTP调试
- PHP 正则小解
- getParameter
- PHP 正则函数
- PHP利用P3P实现跨域
- php 新特性trait介绍(1)
- php基础知识笔记 一
- PHP二分法(折半查找)
- PHP解决多进程同时读写一个…
- PHP如何修改和获取private变量的值
- PHP实现中文字串截取无乱码的方法…
- PHP遍历一个目录下的文件夹和文件
- 关于PHP Header("Location:")重定…