日韩精品一区二区三区视频-日韩精品一区二区三区在线观看-日韩精品一区二区三区在线观看l-日韩精品一区二区三区中文-日韩精品一区二区三区中文3d-日韩精品一区二区三区中文不卡

Web前端知識

首頁 > 免費 > Web前端知識 >

PHP 共享內存使用與信號控制

來源:北京匯仁智杰科技有限公司   時間:2016-05-19   點擊:

  共享內存
  共享內存的使用主要是為了能夠在同一臺機器不同的進程中共享一些數據,比如在多個 php-fpm 進程中共享當前進程的使用情況。這種通信也稱為進程間通信(Inter-Process Communication),簡稱 IPC。
  PHP 內置的shmop 擴展(Shared Memory Operations) 提供了一系列共享內存操作的函數(可能是用的人不多吧,這一塊兒的文檔還沒有中文翻譯)。在 Linux 上,這些函數直接是通過調用shm*系列的函數實現,而 Winodows 上也通過對系統函數的封裝實現了同樣的調用。
  主要函數:
  shmop_close— 關閉共享內存塊
  shmop_delete— 刪除共享內存塊
  shmop_open— 創建或打開共享內存塊
  shmop_read— 從共享內存塊中讀取數據
  shmop_size— 獲取共享內存塊的大小
  shmop_write— 向共享內存塊中寫入數據
  與此相關的還有一個很重要的函數:ftok,通過文件的 inode 信息(*nix 上通過stat或ls -i命令查看)創建 IPC 的唯一 key(文件/文件夾的 inode 是唯一的)。這個函數在 Linux 上也是直接調用同名的系統函數實現,Windows 上還是使用一些封裝。
  有個需要稍微注意的點:shmop_open的第二個參數是個 flag,類似 fopen 的第二個參數,其取值有以前幾個:
  “a” 只讀訪問;
  “c” 如果內存片段不存在,則創建,如果存在,則可讀寫;
  “w” 讀寫;
  “n” 創建新的內存片段,如果同樣 key 的已存在,則會創建失敗,這是為了安全使用共享內存考慮。
  此外,由于使用的共享內存片段是固定長度的,在存儲和讀取的時候要計算好數據的長度,不然可能會寫入失敗或者讀取空值。
  信號控制
  既然上面使用到了共享內存存儲數據,就需要考慮是否有多個進程同時寫入數據到共享內存的情況,是否需要避免沖突。如果是這樣,就需要引入信號量進行控制。
  PHP 也提供了類似的內置擴展sysvsem(這個擴展在 Windows 環境下沒有,文檔中將ftok函數也歸到這個擴展中,但實際上ftok是在標準函數庫中提供的,所以在 Windows 下也是可用的)。
  在說信號量控制之前,先說另外一件有意思的事情:看官方文檔你會發現這里同樣也有共享內存操作的函數(shm_*),因為這其實是同一類別(或者說來自于同一作者)的三個擴展,還有一個是 sysvmsg(隊列消息) 。函數的實現上稍有差別,但實際做的事情基本相同。這和上文的 shmop 擴展有什么區別呢?shmop 源碼下的README文件有簡單的說明:
  簡單說來:sysvshm 擴展提供的方法并不是原封不動的存儲用戶的數據,而是先使用 PHP 的變量序列化函數對參數進行序列化然后再進行存儲。這就導致通過這些方法存儲的數據無法和非 PHP 進程共享。不過這樣也能存儲更豐富的 PHP 數據類型,上文的擴展中shmop_write只能寫入字符串。那么為什么 sysvshm 同樣不支持 Windows 呢?因為其并沒有引入封裝了shm*系列函數的tsrm_win32.h的頭文件。
  但是本地想模擬實現寫入沖突實際上是非常難的(考慮到計算機的執行速度)。在本地測試中,使用for循環操作時如果不使用shmop_close關閉資源會出現無法打開共享內存的錯誤警告。這應該是因為正在共享內存被上一次操作占用中還沒有釋放導致。

網絡營銷推廣 . 北京匯仁智杰科技有限公司!

地址:北京市昌平區回龍觀龍冠大廈5層
咨詢:13370157521
業務QQ:373002979
E - mail:sales @ huirenzhijie.com
企業網站備案:京ICP備15021091號-1

匯仁智杰與眾不同

  • 有網絡推廣經驗
  • 有網站建站隊伍
  • 有大型網站建設經驗
  • 致力于營銷型網站建設
  • 始終堅持技術和服務同樣重要
查看PC版網站
備案號:京ICP備15021091號-1 版權所有:匯仁智杰

激情内射亚洲一区二区三区爱妻 | 国产黄页在线观看 | 精品精品国产高清a毛片 | 狠狠88综合久久久久综合网 | 91精品久久国产青草 | 国产免费又粗又猛又爽视频国产 | 久久久久亚洲av成人人电影 | 国产乱国产乱老熟300部视频 | 又色又爽又黄高潮的免费视频 | 人妻熟女一区二区三区app下载 | 欧美日韩精品一区二区在线视频 | 精品无码一区二区三区的天堂 | 欧美与黑人午夜性猛交久久久 | 国产高颜值大学生情侣酒店 | 无码人妻啪啪一区二区 | 美女裸体a级毛片 | 国产s级做人爱c视频大学生 | 国产一区二区在线免费观看 | 特级精品毛片免费观看 | 国产精品综合在线 | 狠狠人妻久久久久久综合 | 国产精品久久久久久久久绿色 | 双腿张开被9个男人调教 | 国产精品久久久久久久久久免费看 | 国产一区二区在线视频 | 70岁老妇女一级毛片爽 | 国产又粗又猛又爽又黄的视频在线观看动漫 | 久久久久久久人妻无码中文字幕爆 | 99久久精品男女性高爱 | 亚洲av无码成人精品区天堂 | 国产乱子伦精品无码专区 | 欧美黑人性暴力猛交喷水 | 欧美精品免费观看二区 | 亚洲一区 日韩精品 中文字幕 | 人妻夜夜添夜夜无码av | 亚洲av片不卡无码久久 | 国产精品久久久久影院嫩草 | 国产精品无码av天天爽播放器 | 国产午夜一级鲁丝片 | 久久婷婷成人综合色 | 精品无码成人久久久久久 |