画江湖之 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 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!