国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

php進程間通訊實例分析

2020-03-22 19:28:13
字體:
來源:轉載
供稿:網友
本文實例講述了php進程間通訊的方法。分享給大家供大家參考,具體如下:php單進程單線程處理批量任務太慢了,受不鳥了,但是php不能多線程,最終選擇了多進程處理批量任務.php多進程主要使用for進行分裂,然后利用的unix/linux的信號量進行進程間通訊.本例使用的是:生產者= 消費者= 收集器,的模式.// ===== html' target='_blank'>全局變量 =====// ipc進程間通訊$key = ftok(__FILE__, "a");$queue = msg_get_queue($key);// 進程ID$producer_pid = 0;$consumers_pid = array();$collector_pid = posix_getpid();// ===== 消費者 =====for ($i=0; $i $i++) { $consumer_pid = pcntl_fork(); if ($consumer_pid == -1) { exit("could not fork!/n"); } else if ($consumer_pid) { // pcntl_wait($status); echo "consumer_pid: $consumer_pid/n"; $consumers_pid[] = $consumer_pid; } else { $pid = posix_getpid(); echo "consumer_pid: $pid start/n"; while (true) { msg_receive($queue, $pid, $msgtype, 1024, $message); if ($message == "exit") { break; // 數據處理 $n = intval($message); msg_send($queue, $collector_pid, $n * $n); exit("consumer ok!/n");// ===== 產生者 =====$producer_pid = pcntl_fork();if ($producer_pid == -1) { exit("could not fork!/n");} else if ($producer_pid) { // pcntl_wait($status); echo "producer_pid: $producer_pid/n";} else { $pid = posix_getpid(); echo "producer_pid: $pid start/n"; $n = 0; for ($i=0; $i $i++) { foreach ($consumers_pid as $consumer_pid) { $n++; msg_send($queue, $consumer_pid, $n); sleep(1); foreach ($consumers_pid as $consumer_pid) { msg_send($queue, $consumer_pid, "exit"); sleep(1); msg_send($queue, $collector_pid, "exit"); exit("producer ok!/n");// ===== 收集器 =====while (true) { msg_receive($queue, $collector_pid, $msgtype, 1024, $message); if ($message == "exit") { break; echo sprintf("% 5d: %d/n", $msgtype, $message);exit("collector ok!/n");更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP進程與線程操作技巧總結》、《PHP網絡編程技巧總結》、《PHP基本語法入門教程》、《php日期與時間用法總結》、《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》希望本文所述對大家PHP程序設計有所幫助。PHP教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 连云港市| 乌兰察布市| 通渭县| 靖边县| 隆德县| 梨树县| 曲水县| 乌鲁木齐县| 西乌| 长宁区| 成武县| 南投市| 林西县| 宜黄县| 分宜县| 行唐县| 陇西县| 肇东市| 论坛| 凤山县| 光泽县| 天祝| 浮梁县| 雷波县| 阿勒泰市| 宿迁市| 大埔县| 阿图什市| 锡林浩特市| 秭归县| 澄城县| 清河县| 吉林市| 霞浦县| 文成县| 丹东市| 梧州市| 辽中县| 临澧县| 绿春县| 碌曲县|