深入浅析php中的pcntl_fork()函数

深入浅析php中的pcntl_fork()函数,第1张

概述深入浅析php中的pcntl_fork()函数 本篇文章给大家介绍一下PHP中pcntl_fork()函数,了解它的执行过程。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

【推荐学习:《PHP视频教程》】

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 < 3; $i++) {    $pID = pcntl_fork();}sleep(30);

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

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

更多编程相关知识,请访问:编程入门!! 总结

以上是内存溢出为你收集整理的深入浅析php中的pcntl_fork()函数全部内容,希望文章能够帮你解决深入浅析php中的pcntl_fork()函数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1011993.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存