画江湖之 PHP 多进程开发 [进程中如何通信 共享内存]
共享内存 特点
- 数据不需要在客户进程和服务器进程之间复制,所以是最快的一种进程通信。因为是基于内存的
函数
shmop_open 创建或打开共享内存块
shmop_size 取得共享内存块大小
shmop_write 写入数据到共享内存块
shmop_read 从共享内存块读取数据
shmop_close 关闭共享内存块
shmop_delete 删除共享内存块
代码演示 一个进程
<?php
$key = ftok(__FILE__, 't');//用此函数创建一个唯一的共享key
echo $key . PHP_EOL;
$resource = shmop_open($key, 'c', 0664, 200);//生成一个共享内存 资源
echo "Size of shmop = " . shmop_size($resource) . PHP_EOL;//读取这个共享内存的大小
$bytes = shmop_write($resource, 'Hello', 0);//给这个共享内存资源写入一个值
echo "Bytes of write = " . $bytes . PHP_EOL;
echo shmop_read($resource, 0, 200) . PHP_EOL;//从共享内存读取一个这个值
代码演示 另一个进程
<?php
//另一个进程区间
$resource = shmop_open('1946288158', 'c', 0664, 200);//生成一个共享内存指定的key 资源
echo shmop_read($resource, 0, 200) . PHP_EOL;//读取共享内存的值
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: