最新消息:

三分钟,可以了解pcntl多进程简单用法

PHP PHPzailushang 68浏览 0评论

三分钟,可以了解pcntl多进程简单用法

前言:

上一篇《三分钟了解PHP的进程和线程》有朋友说没有代码,给差评,这不,再继续写一写关于多进程(pcntl)的东西,另外附上PHP代码,力求三分钟让朋友们看明白,有不当之处,请高手指正,不胜感激。

内容概要:

1、PHP的pcntl简介

2、PHP代码实现

一、PHP的pcntl简介

pcntl是php一个扩展,用于php处理多进程的开发。pcntl扩展的安装不是重点,网上搜索结果一大把。我们这里使用pcntl来实现一个简单的例子做说明。

二、PHP代码实现

三分钟,可以了解pcntl多进程简单用法

简单代码

看运行结果(一定要用命令行的方式执行,浏览器的执行方式得到的结果是不一样的):

三分钟,可以了解pcntl多进程简单用法

运行结果

我想,这个可能会让好多朋友困惑了,怎么两句话都打印出来了呢?

首先在fork之后,这段代码就不是一个进程在使用,他分裂成两个进程,一个父进程,一个子进程。

其实也可以这样理解,子进程是父进程复制出来的。但在操作系统的角度,他们是一种兄弟关系,两个进程共享一个代码空间(指令集),单数数据空间是相互独立的(但是不知道为啥大家都称呼他们为父进程和子进程,我们也这么称呼吧)。

父进程和子进程有一点是不同的,如果fork成功,子进程的返回值是0,父进程的返回值是子进程的进程号。

在这里,我们对上面的示例代码说明一下:

在代码执行到”pid=pcntl_fork();”时,系统会造一个和主进程一模一样的子进程。

子进程的”pid=pcntl_fork();”一句中 pid得到的就是子进程本身的pid;

子进程结束后,父进程的”pid=pcntl_fork();”中pid得到的就是父进程本身的pid,

因此该程序有两行输出。

两个也算多进程?当然算了,还不够的话,那就循环fork就行了。

以上明白了就算入门了,更多pcntl函数的用法详见PHP官网手册。

转载请注明:PHP学习 » 三分钟,可以了解pcntl多进程简单用法

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址