1. 程式人生 > >php實現共享內存進程通信函數之_sem

php實現共享內存進程通信函數之_sem

實現 share eol 檢測 項目 php_eol 存儲 soft 大小

前面介紹了php實現共享內存的一個函數shmop,也應用到了項目中,不過shmop有局限性,那就是只支持字符串類型的;sem經過我的測試,是混合型,支持數組類型,可以直接存儲,直接獲取,少了多余的步驟格式轉換。不過sem有大小限制,shmop可以設置很大很大很大~~~

<?php
$key = 0x4337b124;  
$shar_key = 1;
// 創建一個共享內存
$shm_id = shm_attach($key, 1024, 0666); // resource type
if ($shm_id === false) {
    die(Unable to create the shared memory segment
. PHP_EOL); } //設置一個值 shm_put_var($shm_id, $shar_key, test); //刪除一個key shm_remove_var($shm_id, $shar_key); //獲取一個值 $value = shm_get_var($shm_id, $shar_key); var_dump($value); //檢測一個key是否存在 var_dump(shm_has_var($shm_id, $shar_key)); //從系統中移除 shm_remove($shm_id); //關閉和共享內存的連接 shm_detach($shm_id);

註意:$shar_key 只能是 int 型的參數。

php實現共享內存進程通信函數之_sem