• 技术文章 >后端开发 >PHP问题

    详解php中pcntl_fork

    醉折花枝作酒筹醉折花枝作酒筹2021-05-12 17:37:35转载263
    本篇文章给大家介绍一下php中的“pcntl_fork”。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

    pcntl_fork()函数是php-pcntl模块中用于创建进程的函数。(不支持windows)

    至于php_pcntl扩展如何安装开启这里就不介绍了,只分析pcntl_fork()这个函数本身。

    $one = 123;
    $one++;
    $two = time();
    $pid = [];
    $pid = pcntl_fork();
    $three = time();

    当:pcntl_fork()函数执行的时候,会创建一个子进程。子进程会复制当前进程,也就是父进程的所有:数据,代码,还有状态。

    当pcntl_fork()创建子进程成功后,在父进程内,返回子进程号,在子进程内返回0,失败则返回-1

    子进程会复制父进程的代码,数据。那么就说明:子,父进程拥有的代码和数据会一模一样。

    重点:子进程会复制父进程的状态,那么就有上面的示例代码:在第五行执行了pcntl_fork,那么创建出的子进程,代码也是从第五行开始执行的。又子进程复制了数据,代码。所以,在子进程内同理存在:$one,$two等变量

    for ($i = 0; $i < 3; $i++) {
        $pid = pcntl_fork();
    }
    sleep(30);

    那么:上面的for循环,实际会产生多少个子进程?答案是7个,在linux下,用ps命令将可以看到8个进程(1个父进程,7个子进程)

    原因:父进程在i = 0 时 , 创 建 出 一 个 子 进 程 0 , 此 时 的 子 进 程 , 还 会 继 续 执 行 循 环 。 创 建 出 属 于 自 己 的 子 进 程 。 同 理 : i=0时,创建出一个子进程0,此时的子进程,还会继续执行循环。创建出属于自己的子进程。同理:i=0时,创建出一个子进程0,此时的子进程,还会继续执行循环。创建出属于自己的子进程。同理:i=1时也会这样……

    推荐学习:php视频教程

    以上就是详解php中pcntl_fork的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除
    专题推荐:php pcntl_fork
    上一篇:如何理解PHP架构布局 下一篇:php如何实现写入文本,文件夹不存在则创建
    Web大前端开发直播班

    相关文章推荐

    • php 5.6.30没有php.ini怎么办• php png水印不透明怎么办• 带大家了解PHP弱引用的知识• PHP中->和=>的意思是什么• 如何理解PHP架构布局

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网