ubuntu - pcntl 子进程引用并修改父进程数据的问题??
怪我咯
怪我咯 2017-04-24 09:12:06
0
3
750

代码:

$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(),没有发生任何变化!
                    // 子进程无法修改主进程中的数据。
                    // 子进程中该如何修改主进程中的数据,实现数据共享??
}

结果:

进程间该如何进行数据交流??

怪我咯
怪我咯

走同样的路,发现不同的人生

全員に返信(3)
大家讲道理

子プロセスが作成されると、親プロセスの変数データから切り離されます。子プロセスで親プロセスの変数を変更したい場合は、プロセス間通信を実装し、関連するコードを自分で実装する必要があります。もちろん、共有メモリを介して変数を共有することもできます。

いいねを押す +0
PHPzhong

プロセス間通信には多くの方法が利用可能です。最も一般的なのは TCP です。

いいねを押す +0
迷茫

私はちょうど pcntl を勉強していて、プロセス間通信についても考えました。利用可能な方法の 1 つであるメッセージ キューを見つけたので、コードにいくつかの文を追加しました。それとお互いに助け合うことです。

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!