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

代码:

$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)
大家讲道理

자식 프로세스가 생성된 후에는 상위 프로세스의 변수 데이터와 분리되었습니다. 하위 프로세스가 상위 프로세스 변수를 수정하도록 하려면 프로세스 간 통신을 통해 해당 코드를 구현해야 합니다. 스스로요. 물론 공유 메모리를 통해서도 변수를 공유할 수 있습니다.

PHPzhong

프로세스 간 통신에는 다양한 방법이 있습니다. 가장 일반적인 것은 TCP입니다.

迷茫

저는 방금 pcntl을 배우고 있었는데 프로세스 간 통신에 대해서도 생각했습니다. 메시지 대기열을 사용하는 방법이 너무 복잡하지 않다고 생각하여 코드에 몇 문장을 추가했습니다. 그것을 시도하고 서로를 도울 수 있습니다.

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿