亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

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

問題描述

代碼:

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

結果:

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

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

問題解答

回答1:

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

回答2:

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

回答3:

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

// 創(chuàng)建key和消息隊列$msg_key = ftok(__FILE__, ’a’);$msg_queue = msg_get_queue($msg_key);$data = array();$p = pcntl_fork();if ($p === -1) { exit(’創(chuàng)建進程失敗!’ . PHP_EOL);} else if ($p === 0) { // 修改主進程中的數據 // 將修改的數據發(fā)送到消息隊列 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); }

相關文章:
主站蜘蛛池模板: 麻豆传媒视频入口 | 欧美日韩aa一级视频 | 99久久er热在这里只有精品16 | 国产精品深夜福利免费观看 | 欧美成人国产一区二区 | 国产大尺度吃奶无遮无挡 | 久久亚洲欧美日本精品品 | 草草草在线 | 国产日韩视频 | 精品美女在线观看 | 51成人免费影院 | 狠狠干中文字幕 | 国产高清免费在线观看 | 特大巨黑人吊与黑人性xxxx | 手机日韩理论片在线播放 | 一国产一级淫片a免费播放口 | 国产免费不卡 | 国产久 | 在线视频观看你懂的我的 | 激情影院成人区免费观看视频 | 在线观看久草视频 | 国产伦一区二区三区四区久久 | 欧美韩国日本在线 | 免费一级毛片在线播放不收费 | 女人被免费网站视频在线 | 国产精品免费αv视频 | 国产精品天天看天天爽 | 亚洲福利秒拍一区二区 | 婷婷黄色| 婷婷在线播放 | 亚洲午夜精品久久久久久成年 | 动漫男女交性动漫网站 | 亚洲一区二区天海翼 | 免费视频网站一级人爱视频 | 精品一久久香蕉国产线看观 | 久久这里只有精品国产 | 最新黄色在线 | 国产人成精品免费视频 | 日韩六九视频 | 黄页成人免费网站 | 特一级大黄在线观看 |