畫江湖之 PHP 多程式開發 【程式中如何通訊 共享記憶體】

Krisji發表於2019-04-02

共享記憶體 特點

  • 資料不需要在客戶程式和伺服器程式之間複製,所以是最快的一種程式通訊。因為是基於記憶體的
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;//讀取共享記憶體的值

相關文章