麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > PHP > 正文

PHP多線程編程之管道通信實例分析

2020-03-24 18:56:11
字體:
來源:轉載
供稿:網友
本文實例講述了PHP多線程編程之管道通信用法。分享給大家供大家參考。具體分析如下:一個線程如果是個人英雄主義,那么多線程就是集體主義,你不再是一個獨行俠,而是一個指揮家。
管道通信:
1. 管道可以認為是一個隊列,不同的線程都可以往里面寫東西,也都可以從里面讀東西。寫就是
在隊列末尾添加,讀就是在隊頭刪除。

2. 管道一般有大小,默認一般是4K,也就是內容超過4K了,你就只能讀,不能往里面寫了。

3. 默認情況下,管道寫入以后,就會被阻止,直到讀取他的程序讀取把數據讀完。而讀取線程也會被阻止,
直到有進程向管道寫入數據。當然,你可以改變這樣的默認屬性,用stream_set_block 函數,設置成非阻斷模式。

下面是我分裝的一個管道的類(這個類命名有問題,沒有統一,沒有時間改成統一的了,我一般先寫測試代碼,最后分裝,所以命名上可能不統一):
html' target='_blank'>class Pipe public $fifoPath; private $w_pipe; private $r_pipe; * 自動創建一個管道 * @param string $name 管道名字 * @param int $mode 管道的權限,默認任何用戶組可以讀寫 function __construct($name = 'pipe', $mode = 0666) $fifoPath = "/tmp/$name." . posix_getpid(); if (!file_exists($fifoPath)) { if (!posix_mkfifo($fifoPath, $mode)) { error("create new pipe ($name) error."); return false; } else { error( "pipe ($name) has exit."); return false; $this- fifoPath = $fifoPath;///////////////////////////////////////////////////// 寫管道函數開始/////////////////////////////////////////////////// function open_write() $this- w_pipe = fopen($this- fifoPath, 'w'); if ($this- w_pipe == NULL) { error("open pipe {$this- fifoPath} for write error."); return false; return true; function write($data) return fwrite($this- w_pipe, $data); function write_all($data) $w_pipe = fopen($this- fifoPath, 'w'); fwrite($w_pipe, $data); fclose($w_pipe); function close_write() return fclose($this- w_pipe);//////////////////////////////////////////////////////////// 讀管道相關函數開始//////////////////////////////////////////////////////// function open_read() $this- r_pipe = fopen($this- fifoPath, 'r'); if ($this- r_pipe == NULL) { error("open pipe {$this- fifoPath} for read error."); return false; return true; function read($byte = 1024) return fread($this- r_pipe, $byte); function read_all() $r_pipe = fopen($this- fifoPath, 'r'); $data = ''; while (!feof($r_pipe)) { //echo "read one K/n"; $data .= fread($r_pipe, 1024); fclose($r_pipe); return $data; function close_read() return fclose($this- r_pipe); * 刪除管道 * @return boolean is success function rm_pipe() return unlink($this- fifoPath);有了這個類,就可以實現簡單的管道通信了。*/希望本文所述對大家的php程序設計有所幫助。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久色免费 | 哪里可以看免费的av | 成人视屏网站 | 精品国产91一区二区三区 | 91成人一区 | 欧美一级淫片免费播放口 | 干一夜综合 | 北原夏美av | 亚洲网站在线播放 | 久久艹艹艹 | 污片在线观看视频 | 中文字幕一区在线观看视频 | 欧美一级黄色片在线观看 | 国产黄色一区二区 | 91成人免费看片 | 免费黄色在线 | av在线试看 | 国产亚洲综合一区二区 | 日韩精品久久久久久久电影99爱 | 黄色7777| 精品一区二区免费视频视频 | 欧美一级做性受免费大片免费 | 黄色网战入口 | 日韩毛片一区二区三区 | 亚洲男人天堂 | 国产精品美女久久久久久不卡 | 高潮激情aaaaa免费看 | 欧美日韩亚洲精品一区二区三区 | 久久久久久久久久美女 | 久久久久亚洲精品国产 | 欧美一级免费视频 | 国产亚洲精品久久久久久大师 | 露脸各种姿势啪啪的清纯美女 | h视频在线观看免费 | 欧美 日韩 三区 | 国产精品久久久久久久久久尿 | 黄网站色成年大片免费高 | 99久久电影 | 久久久精品99 | 日本在线不卡免费 | 久久艳片 |