深入浅析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中的foreach
下一篇: js 定义对象数组(结合)多维数组方法
推荐阅读
-
PHP中的正则表达式函数介绍_PHP
-
PHP去除数组中重复的元素并按键名排序函数_php技巧
-
图象函数中的中文显示_PHP
-
内蒙古自治区*管理局 深入探讨PHP中的内存管理问题
-
PHP获取指定函数定义在哪个文件中以及其所在的行号实例_php技巧
-
巧用php中的array_filter()函数去掉多维空值的代码分享_php技巧
-
PHP 5.0中多态性的实现方案浅析
-
WordPress中调试缩略图的相关PHP函数使用解析,wordpress缩略图
-
从PHP的源码中深入了解stdClass类_PHP教程
-
在PHP3中实现SESSION的功能(附、COOKIE函数库的使用:test_cookie.php3