国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

ubuntu - pcntl 子進程引用并修改父進程數據的問題??

瀏覽:110日期:2024-07-07 15:51:59

問題描述

代碼:

$data = array();$p = pcntl_fork();if ($p === -1) { exit(’創建進程失敗!’ . PHP_EOL);} else if ($p === 0) { // 修改主進程中的數據 $data = array(’cxl’ , ’ys’);} else { pcntl_wait($status);// 子進程返回后,查看數據變動 print_r($data); // 結果 array(),沒有發生任何變化! // 子進程無法修改主進程中的數據。 // 子進程中該如何修改主進程中的數據,實現數據共享??}

結果:

ubuntu - pcntl 子進程引用并修改父進程數據的問題??

進程間該如何進行數據交流??

問題解答

回答1:

子進程創建后,已經與父進程的變量數據脫鉤,如果要實現子進程修改父進程變量,需要通過進程間通訊并自行實現相關代碼來完成。當然,也可以通過共享內存的方式實現變量的共享。

回答2:

進程間通信可用的方法多了去了。最常見的,TCP。

回答3:

剛好在學習pcntl,也想到進程間通信的事情,搜到的其中一個可用方法-使用消息隊列,覺得不太復雜,于是在你代碼上加了幾句,可以試試,互助共勉。

// 創建key和消息隊列$msg_key = ftok(__FILE__, ’a’);$msg_queue = msg_get_queue($msg_key);$data = array();$p = pcntl_fork();if ($p === -1) { exit(’創建進程失??!’ . PHP_EOL);} else if ($p === 0) { // 修改主進程中的數據 // 將修改的數據發送到消息隊列 msg_send($msg_queue, 1, array(’cxl’ , ’ys’)); exit();} else { pcntl_wait($status);// 子進程返回后,查看數據變動 // 接收隊列中的數據 msg_receive($msg_queue, 1, $msg_type, 1024, $msg); // 銷毀隊列 msg_remove_queue($msg_queue);$data = $msg; print_r($data); }

相關文章:
主站蜘蛛池模板: 精品国产成人三级在线观看 | 6080伦理久久亚洲精品 | 亚洲精品在线网站 | 欧美日产国产亚洲综合图区一 | 日韩一级片免费看 | 天天看片天天爽 | 中文字幕有码在线视频 | 亚洲精品影院久久久久久 | 一区二区三区国产 | 国内精品久久久久久久影视麻豆 | 免费一级欧美在线观看视频片 | 亚洲精品国产专区91在线 | 99久久精品国产一区二区三区 | 精品国产一区二区三区免费看 | 亚洲精品欧美精品国产精品 | 欧美成人精品不卡视频在线观看 | 成人性色生活片全黄 | 东莞a级毛片 | 日韩免费一级毛片欧美一级日韩片 | 一级做a爱久久久久久久 | 久久久在线视频精品免费观看 | 欧美最刺激好看的一级毛片 | 日本aaaa级毛片在线看 | 亚洲综合成人网 | 国产精品视频一区二区三区 | 久久精品系列 | 步兵网站| 成人高清无遮挡免费视频软件 | 成人99国产精品 | 日韩天天干 | 国产精品久久一区二区三区 | 欧美国产精品亚洲精品第一区 | 制服诱惑中文字幕 | 中文字幕一区二区三区视频在线 | 边接电话边做国语高清对白 | 久久欧美精品欧美九久欧美 | 欧美韩国日本在线 | 足恋玩丝袜脚视频免费网站 | 国产精品1区2区3区在线播放 | 大片国产片日本观看免费视频 | 久久久久久综合成人精品 |