登录  /  注册

你了解php中pcntl_fork吗

慕斯
发布: 2021-05-24 15:29:41
转载
2565人浏览过

关于pcntl_fork()函数是php-pcntl模块中用于创建进程的函数。本篇文章将会带领你们一同走进充满奥秘的PHP中,一起出发吧!!!

你了解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()函数执行的时候,会创建一个子进程。子进程会复制当前进程,也就是父进程的所有:数据,代码,还有状态。

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

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

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

for ($i = 0; $i <p>那么:上面的for循环,实际会产生多少个子进程?答案是7个,在linux下,用ps命令将可以看到8个进程(1个父进程,7个子进程)<br> 原因:父进程在<span class="katex--inline"><span class="katex"><span class="katex-mathml">
    
     
      
       
        i
       
       
        =
       
       
        0
       
       
        时
       
       
        ,
       
       
        创
       
       
        建
       
       
        出
       
       
        一
       
       
        个
       
       
        子
       
       
        进
       
       
        程
       
       
        0
       
       
        ,
       
       
        此
       
       
        时
       
       
        的
       
       
        子
       
       
        进
       
       
        程
       
       
        ,
       
       
        还
       
       
        会
       
       
        继
       
       
        续
       
       
        执
       
       
        行
       
       
        循
       
       
        环
       
       
        。
       
       
        创
       
       
        建
       
       
        出
       
       
        属
       
       
        于
       
       
        自
       
       
        己
       
       
        的
       
       
        子
       
       
        进
       
       
        程
       
       
        。
       
       
        同
       
       
        理
       
       
        :
       
      
      
       i=0时,创建出一个子进程0,此时的子进程,还会继续执行循环。创建出属于自己的子进程。同理:      
     
    </span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.65952em; vertical-align: 0em;"></span><span class="mord mathdefault">i</span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right: 0.277778em;"></span></span><span class="base"><span class="strut" style="height: 0.64444em; vertical-align: 0em;"></span><span class="mord">0</span><span class="mord cjk_fallback">时</span><span class="mord cjk_fallback">,</span><span class="mord cjk_fallback">创</span><span class="mord cjk_fallback">建</span><span class="mord cjk_fallback">出</span><span class="mord cjk_fallback">一</span><span class="mord cjk_fallback">个</span><span class="mord cjk_fallback">子</span><span class="mord cjk_fallback">进</span><span class="mord cjk_fallback">程</span><span class="mord">0</span><span class="mord cjk_fallback">,</span><span class="mord cjk_fallback">此</span><span class="mord cjk_fallback">时</span><span class="mord cjk_fallback">的</span><span class="mord cjk_fallback">子</span><span class="mord cjk_fallback">进</span><span class="mord cjk_fallback">程</span><span class="mord cjk_fallback">,</span><span class="mord cjk_fallback">还</span><span class="mord cjk_fallback">会</span><span class="mord cjk_fallback">继</span><span class="mord cjk_fallback">续</span><span class="mord cjk_fallback">执</span><span class="mord cjk_fallback">行</span><span class="mord cjk_fallback">循</span><span class="mord cjk_fallback">环</span><span class="mord cjk_fallback">。</span><span class="mord cjk_fallback">创</span><span class="mord cjk_fallback">建</span><span class="mord cjk_fallback">出</span><span class="mord cjk_fallback">属</span><span class="mord cjk_fallback">于</span><span class="mord cjk_fallback">自</span><span class="mord cjk_fallback">己</span><span class="mord cjk_fallback">的</span><span class="mord cjk_fallback">子</span><span class="mord cjk_fallback">进</span><span class="mord cjk_fallback">程</span><span class="mord cjk_fallback">。</span><span class="mord cjk_fallback">同</span><span class="mord cjk_fallback">理</span><span class="mord cjk_fallback">:</span></span></span></span></span>i=1时也会这样……</p><p>推荐学习:《<a href="https://www.php.cn/course/list/29/type/2.html" target="_self">PHP视频教程</a>》</p>
登录后复制

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

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:CSDN网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号