当前位置:首页 > PHP > 正文内容

php共享内存,php共享内存的使用

高老师5年前 (2021-05-18)PHP1009

(1).基本的写入(a.php)

//(1.1).创建一个IPC通信专用的KEY
$shm_key = ftok(__FILE__, 't');

//(1.2).创建或者打开共享内存块,创建1KB
$shmop = shmop_open($shm_key, 'c', '0644', 1024);
if (!$shmop) {
    throw new Exception('创建共享内存失败');
}

//(1.3).向内存写入数据
$text = 'A:大家好,我是A进程,我创建的内存空间啊,欢迎大家一起来耍啊';
if (!shmop_write($shmop, $text, 0)) {
    throw new Exception('共享内存写入数据失败');
}

//(1.4).用完关闭资源(并不会清除内存数据,只关闭资源句柄)
shmop_close($shmop);

//(1.5).输出共享内存块的系统ID,我的是1948581891,php打印的是int值,底层用的16进制
echo dechex($shm_key) . PHP_EOL;

(2).基本的读取(b.php)

//(2.1).打开A进程创建的共享内存
$shm_key = 0x74250004;
$shmop = shmop_open($shm_key, 'c', '0644', 1024);
if (!$shmop) {
    throw new Exception('打开共享内存失败');
}

//(2.2).从内存读取数据
$data = shmop_read($shmop, 0, 1024);
file_put_contents('1.txt', $data);
echo "b进程读取到的消息为:" . $data . PHP_EOL;

//(2.3).删除共享内存.不需要close.直接删除
shmop_delete($shmop);

(3).注意事项

通过ipcs -m 命令可以查看已经创建的共享内存

通过ipcrm -M key 命令可以删除通过shm_key创建的共享内存

共享内存不会因为进程退出而丢失,会一直存在系统中,除非删除它

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/199.html

分享给朋友:

“php共享内存,php共享内存的使用” 的相关文章

 PHP判断微信浏览器, PHP判断是否微信浏览器

PHP判断微信浏览器, PHP判断是否微信浏览器

获取浏览器信息原理是基于浏览器的UA信息,早在AsP时代就这样判断,但是腾讯总是喜欢自己折腾,不知道以后会修改成什么! 提取自人人商城官方自带的判断方法:function is_weiXin()  {    if (empty($_SERV...

PHP高并发下数据库值更新的问题

PHP高并发下数据库值更新的问题

(1).创建数据库test ,创建表shop(字段id,total),商品id是1,商品总数10    (2).PHP模拟购买,商品数量大于0才能购买<?php //连接数据库 $con=mysqli_connect("192.168.2.18...

 php header属性,php header 详解,php header的作用

php header属性,php header 详解,php header的作用

header() 函数向客户端发送原始的 HTTP 报头。(官方解释)通俗的讲header函数将参数中的字符串作为服务端的响应头来返回给客户端。什么是服务端的响应头?打开谷歌浏览器看看network中的请求response header信息即可。更多的参数百度response header即可浏览器...

php多进程,php多进程处理任务,php多进程应用场景

php多进程,php多进程处理任务,php多进程应用场景

php多进程应用场景主要是非web端,fpm下是不支持多进程的,非类linux操作系统都不支持,请在cli模式使用.可以使用多进程做任务分发,批量计算,批量文件处理,批量爬虫,网络运维等等。下面看一份简单的入门demo//创建子进程 $pid=pcntl_fork(); //返回-1,创建失败,不...

 php max input vars,max input vars限制,max input vars 设置

php max input vars,max input vars限制,max input vars 设置

在一个正式项目中操作人员提交239个产品信息进行保存,但是系统却提示没有提交239个产品,于是开启错误信息,显示如下:Warning: Unknown: Input variables exceeded 1000. To incr...

php数组合并 array_merge和+号的区别

php数组合并 array_merge和+号的区别

array_merge是最常用的数组合并方法,+号同样也可以,但是却有很大不同。array_merge遇到相同字符串key,后面数组的key会覆盖前面数组的key,+号正好相反。$a = [ 'one' => 'A on...