pcntl_fork()函数是php-pcntl模块中用于创建进程的函数。(不支持windows)
至于php_pcntl扩展如何安装开启这里就不介绍了,只分析pcntl_fork()这个函数本身。
$one = 123; $one++; $two = time(); $pid = []; $pid = pcntl_fork(); $three = time();
子进程会复制父进程的代码,数据。那么就说明:子,父进程拥有的代码和数据会一模一样。
重点 :子进程会复制父进程的状态,那么就有上面的示例代码: 在第五行执行了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中pcntl_fork的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did51861