Rumah  >  Artikel  >  pembangunan bahagian belakang  >  你了解php中pcntl_fork吗

你了解php中pcntl_fork吗

慕斯
慕斯ke hadapan
2021-05-24 15:29:412807semak imbas

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

那么:上面的for循环,实际会产生多少个子进程?答案是7个,在linux下,用ps命令将可以看到8个进程(1个父进程,7个子进程)
原因:父进程在                            i                    =                    0                    时                    ,                    创                    建                    出                    一                    个                    子                    进                    程                    0                    ,                    此                    时                    的                    子                    进                    程                    ,                    还                    会                    继                    续                    执                    行                    循                    环                    。                    创                    建                    出                    属                    于                    自                    己                    的                    子                    进                    程                    。                    同                    理                    :                         i=0时,创建出一个子进程0,此时的子进程,还会继续执行循环。创建出属于自己的子进程。同理:              i=00i=1时也会这样……

推荐学习:《PHP视频教程

Atas ialah kandungan terperinci 你了解php中pcntl_fork吗. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam