首页 > Web开发 > 详细

php 共享内存

时间:2014-09-28 00:00:41      阅读:402      评论:0      收藏:0      [点我收藏+]

 

共享内存主要用于进程间通信

 php中的共享内存有两套扩展可以实现

1、shmop  编译时需要开启 --enable-shmop 参数

实例:

  

$shm_key = ftok(__FILE__, ‘t‘);

/**
 开辟一块共享内存
 
int $key , string $flags , int $mode , int $size 
$flags: a:访问只读内存段
        c:创建一个新内存段,或者如果该内存段已存在,尝试打开它进行读写
        w:可读写的内存段
        n:创建一个新内存段,如果该内存段已存在,则会失败
$mode: 八进制格式  0655
$size: 开辟的数据大小 字节

 */

$shm_id = shmop_open($shm_key, "c", 0644, 1024);

/**
 * 写入数据 数据必须是字符串格式 , 最后一个指偏移量
 * 注意:偏移量必须在指定的范围之内,否则写入不了
 * 
 */
$size = shmop_write($shm_id, ‘songjiankang‘, 0);
echo "write into {$size}";

#读取的范围也必须在申请的内存范围之内,否则失败
$data = shmop_read($shm_id, 0, 100);
var_dump($data);

#删除 只是做一个删除标志位,同时不在允许新的进程进程读取,当在没有任何进程读取时系统会自动删除
shmop_delete($shm_id);

#关闭该内存段
shmop_close($shm_id);

 

 

 

参考:http://www.laruence.com/2008/04/21/101.html

    http://www.yuansir-web.com/2012/09/22/php

 

php 共享内存

原文:http://www.cnblogs.com/siqi/p/3997444.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!