首页 > 后端开发 > 正文

php中pcntl_fork是什么意思,pcntl_fork创建子进程如何进行的?

2024-09-21 11:07:26 | 我爱编程网

最近经常有小伙伴私信询问php中pcntl_fork是什么意思,pcntl_fork创建子进程如何进行的?相关的问题,今天,我爱编程网小编整理了以下内容,希望可以对大家有所帮助。

本文目录一览:

php中pcntl_fork是什么意思,pcntl_fork创建子进程如何进行的?

php中pcntl_fork是什么意思,pcntl_fork创建子进程如何进行的?

一、php中pcntl_fork函数概述

pcntl_fork()函数是php中用于创建子进程的一个函数,返回创建的子进程的pid。

该函数创建子进程具体fork的过程:

(1)调用该函数即创建一个子进程,创建成功父进程返回子进程的pid,子进程返回0;

(2)创建子进程实际上对父进程的一个拷贝,共享代码空间,拷贝父进程的数据,也就是说父进程改变父进程的数据,子进程改变子进程

二、示例代码分析

1.代码示例:

<?php

$curr_pid = posix_getpid();//获取当前的进程id

//将当前进程的id写入文件中

echo '当前进程:'.$curr_pid.PHP_EOL;

//开始创建子进程

$son_pid = pcntl_fork();//返回子进程的id

//查看当前进程 我爱编程网

echo '创建子进程之后当前的进程为:'.posix_getpid().PHP_EOL;

//创建了子进程之后

if($son_pid > 0){

echo '子进程id:'.$son_pid.PHP_EOL;

}

2.以上代码执行后结果为:

3.示例代码分析:

(1)发现创建了子进程之后,系统会切换到子进程中,而子进程中的代码是从含有pcntl_fork函数的那行执行的

(2)创建子进程之后,子进程的代码段是拷贝pcntl_fork函数及之后的代码段,之前的代码段并不拷贝,但是具体的数据变量子进程仍然会拷贝

(3)可见,fork之后程序会分叉执行,即子进程执行

三、pcntl_fork的业务场景举例

1.php的多进程中,常用pcntl_fork来实现并发,多用于一些简单工具的实现。

2.例如监控工具,想要监控几个不同指标的情形,可以使用主进程监控各指标的配置变化,然后对每个指标分别fork一个子进程来监控其具体的情形,当主进程发现指标的配置改变则kill掉之前的子进程重新创建子进程进行监控。

3.主进程进行业务分发操作,子进程进行具体的业务逻辑执行。  (BY三人行慕课)

php中pcntl_fork是什么意思,pcntl_fork创建子进程如何进行的?

PHP如何在父类中定义子类

<?
class father{
public $name;
public function __construct($name){
$this->name=$name;
}
public function show(){

return "这是".$this->name;
}
}
//子类的定义
class child extends father{

public function test(){
return "这是子类的一个函数";
}

}
//父类实例化
$p = new father("父类");
//子类实例化
$p2 = new child("子类");
echo $p->show();
echo "<br>";
//子类调用父类的函数
echo $p2->show();
echo "<br>";
//子类调用自己的函数
echo $p2->test();

?>

php中pcntl_fork是什么意思,pcntl_fork创建子进程如何进行的?

在php中,子类extends继承了父类,当子类和父类同时存在构造函数__construct先执行哪一个呢?

我爱编程网(https://www.52biancheng.com)小编还为大家带来在php中,子类extends继承了父类,当子类和父类同时存在构造函数__construct先执行哪一个呢?的相关内容。

1、如果父类和子类中都没有显式的定义__construct,在实例化子类对象时,只会隐含的调用子类自己的构造方法。

2、如果父类中有显式的构造方法__construct,而子类中没有定义__construct,在实例化子类对象时,就会调用父类中的构造方法。

3、如果父类和子类中都显式的定义了__construct,在实例化子类对象时,只会调用子类自己的构造方法(这就像是子类重构了父类的构造方法),而如果也想要调用父类的构造方法的话,就需要在子类的__construct 方法中显式的调用,(如 __construct(){ parent::_construct();})。

扩展资料

子类的构造函数名与子类名相同。

在子类里父类的构造函数不会自动执行。

要在子类里执行父类的构造函数,必须执行类似以下语句:

$this->[父类的构造函数名()]

类的构造函数统一命名为__construct()。

子类的构造函数名也是__construct()(也是废话)。

在子类里父类的构造函数会不会执行,分两种情况:

1、如子类不定义构造函数 __construct(),则父类的构造函数默认会被继承下来,且会自动执行。

2、如子类定义了构造函数 __construct(),因为构造函数名也是__construct(),所以子类的构造函数实际上是覆盖(override)了父类的构造函数。这时执行的是该子类的构造函数。

这时如果要在子类里执行父类的构造函数,必须执行类似以下语句:parent::__construct();

参考资料来源:

百度百科——继承

以上就是我爱编程网小编整理的内容,想要了解更多相关资讯内容敬请关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“php中pcntl_fork是什么意思,pcntl_fork创建子进程如何进行的?”相关推荐
python中缩进是什么意思?
python中缩进是什么意思?

python中缩进是什么意思?应该选择B项,缩进是用来判断当前Python语句在分支结构中。分支结构一共分为4类,即单项分支、双项分支、多项分支、巢状分支。Python语句在分支结构中的if条件表达式如下:一条python语句...一条python语句...扩展资料Python语句分支结构中的单项分支特征:1、if条件表达式结果为真,则执行if之后所控

2024-02-29 01:52:52
php钩子是什么意思
php钩子是什么意思

php钩子是什么意思PHP钩子是一个开发模式,通过将特定的功能点封装成一个“挂钩”(hook),来控制整个程序的运行流程。这种模式常用于构建插件式或模块式应用程序,允许开发者通过实现不同的挂钩来扩展或修改应用程序的功能。PHP钩子机制通常通过观察者模式来实现。当应用程序运行到特定的功能点时,它会检查是否存在已定义的挂钩,并依次调用这些挂钩所定义的函数。这种机制可以让开发者将复杂的应

2024-07-28 09:25:36
php 钩子是什么意思
php 钩子是什么意思

php钩子是什么意思,我们可以从一个例子开始说明PHP钩子的基本原理。如一个网站需要在用户注册成功后执行一些操作,例如发送欢迎邮件或触发其他相关事件,这时我们可以在注册成功的时候“挂上”一个钩子函数,当程序执行到该点时自动调用这个函数,从而实现我们的需求。,PHP钩子使用广泛,因为它可以简化代码和提高效率。例如,一个网站中可能存在多个模块,而这些模块可能会交叉调用某些代码,为了避免

2024-09-22 10:48:46
Java程序员请进!怎么用eclipse创建web项目及配置和运行?
Java程序员请进!怎么用eclipse创建web项目及配置和运行?

Java程序员请进!怎么用eclipse创建web项目及配置和运行?eclipse:准备工作把j2ee的插件放进eclipseplugin文件夹file-new-other-webn-dynamicwebproject随便起个名字finishwindow-showview-servers然后你控制台里就能看到一个server的标签点了然后再空白处右击newserver然后选择to

2024-03-23 00:45:11
如何用手机进行编程?
如何用手机进行编程?

如何用手机进行编程?这里介绍3种可以在手机上编程的app,分别是c语言编译器(c语言)、AIDE集成开发环境(java)、QPython3(python),都不需要root,可以直接编写程序并运行,下面我简单介绍一下这3个app的安装和简单使用,主要内容如下:1.下载安装,这里以我的vivo手机为例,直接打开“应用商店”,搜索“C语言编译器”,如下,直接点击下载安装:测试

2023-12-27 11:08:44
(php编程)如何对数组中的元素进行比较?
(php编程)如何对数组中的元素进行比较?

(php编程)如何对数组中的元素进行比较?&lt;?php$a=array('1'=&gt;'apple','2'=&gt;'orange','3'=&gt;'banana');$b=array('1'=&gt;'apple','2'=&gt;'orange','3'=&gt;'pear');echo'$a:';print_r($a);echo'$b:';prin

2024-08-20 11:50:33
php%是什么意思(php是什么意思)
php%是什么意思(php是什么意思)

PHP取余函数介绍MOD(x,y)与x%y取余函数PHP取余函数PHP两个取余MOD(x,y)x%yMOD例如:9/3,9是被除数,3为除数.mod函数是一个求余函数,其格式为:mod(nExp1,nExp2),即是两个数值表达式作除法运算后的余数。那么:两个同号整数求余与你所知的两个正数求余完全一样(即两个负整数与两个正整数的算法一样)。一、两个异号整数求余

2024-12-13 12:40:32
pysimplegui中如何创建python脚本
pysimplegui中如何创建python脚本

pysimplegui中如何创建python脚本要在Python中使用PySimpleGUI创建图形用户界面(GUI)应用程序,您需要遵循以下步骤:1.**安装PySimpleGUI**:首先,确保您已经安装了PySimpleGUI库。您可以使用pip来安装它,运行以下命令:```pythonpipinstallPySimpleGUI```2.**导入PySimpl

2024-01-15 20:02:34