php - pcntl 多进程下如何避免进程嵌套??
PHPz
PHPz 2017-04-11 09:17:00
0
1
293

进程嵌套的例子:

PHP Code:

// 这里这段代码怎么理解?? // 我是这样理解的(但是结果对不上) //------------------------------------------------------ // 1. p2 进程自身一个,包括自身 1 个进程 // 2. p1 进程创建 1 个子进程 p2,包括自身 2 个进程 // 3. 主进程创建 2 个子进程p1 , p2 , // 又 p1 创建一个子进程 p2,所以, // 包括自身:1(p2) + 2(p1) + 1(self) = 4 个进程 // 4. 总共这段代码有: 1 + 2 + 4 = 7 个进程 // 5. 结果应该输出: 7 个 process // 6. 但实际上,结果只有 4 个 process,这是为什么?? //------------------------------------------------------ $p1 = pcntl_fork(); $p2 = pcntl_fork(); echo 'process' . PHP_EOL;

结果:

结果为什么输出 4 个process?

PHPz
PHPz

学习是最好的投资!

répondre à tous (1)
黄舟

第一个fork执行后, 产生了两个进程, 这两个进程分别执行第二个fork, 所以有了4个进程, 执行了4次echo.
fork之后,子进程和父进程都是从fork的位置继续执行, 而不是从头开始执行

    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!