画江湖之 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 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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