详解如何用PHP 实现多进程

 更新时间:2022年09月16日 09:14:06   作者:CRMEB技术团队  
这篇文章主要为大家介绍了如何用PHP 实现多进程实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

本文将讲解如下内容:

1.PHP 原生进程函数介绍

2.PHP 实现多进程代码

1、PHP 原生进程函数

虽然说 PHP 是世界上最好的语言,但是对于 PHPer 们来说,对多进程、进程管理还是相对陌生的。本文将讲解一下使用 PHP 原生代码如何实现多进程。

首先我们要了解 PHP 实现多进程的函数,如 pcntl_fork、pcntl_wait、pcntl_waitpid 等。

pcntl_fork ( void ) : int

这个函数的作用是创建子进程,并且返回 int 类型的进程 ID,父进程和子进程都是从 fork 的位置开始向下继续执行。

子进程创建成功时,在父进程执行线程内返回产生的子进程的 PID,在子进程执行线程内返回 0。创建失败时,在父进程上下文返回 - 1,不会创建子进程,并且会引发一个 PHP 错误。

pcntl_wait ( int &$status [, int $options = 0 ] ) : int

这个函数的作用是等待或返回 fork 的子进程状态。此函数会挂起当前进程的执行,直到一个子进程退出或者受到一个信号要求中断当前进程或者调用一个信号处理函数。如果一个子进程在调用此函数时已经退出,此函数立刻返回。

此函数返回退出的子进程号,发生错误时返回 - 1,如果提供了 WNOHANG 作为 option 并且没有可用子进程时返回 0。

 

pcntl_waitpid ( int $pid , int &$status [, int $options = 0 ] ) : int

这个函数的作用是等待或返回 fork 的子进程状态。调用这个函数会挂起当前进程的执行,直到参数 pid 指定的进程号的进程退出,或者接收到一个信号要求中断当前进程或调用一个信号处理函数。

pcntl_waitpid () 返回退出的子进程进程号,发生错误时返回 - 1, 如果提供了 WNOHANG 作为 option,并且没有可用子进程时返回 0。

pcntl_signal ( int $signo , callback $handler [, bool $restart_syscalls = true ] ) : bool

这个函数的作用是安装信号处理器,为 signo 指定的信号安装一个新的信号处理器。

signo 为信号编号。

handler 为信号处理器,可以是用户创建的函数或方法,也可以是系统常亮 SIG_IGN(忽略信号处理程序)或 SIG_DFL(默认信号处理程序)。

restart_syscalls 指定当信号到达时系统调用重启是否可用。

函数返回值为 bool 型,成功时返回 true,失败时返回 false。

2、PHP 实现多进程代码

以上就是详解如何用PHP 实现多进程的详细内容,更多关于PHP 多进程的资料请关注脚本之家其它相关文章!

相关文章

  • php中如何防止表单的重复提交

    php中如何防止表单的重复提交

    在php中如何防止表单的重复提交?其实也有几种解决方法。下面小编就为大家介绍一下吧。需要的朋友可以过来参考下
    2013-08-08
  • Youku 视频绝对地址获取的方法详解

    Youku 视频绝对地址获取的方法详解

    本篇文章是对Youku 视频绝对地址获取的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • shopex主机报错误请求解决方案(No such file or directory)

    shopex主机报错误请求解决方案(No such file or directory)

    最近vps客户和服务托管客户安装了shopex网店系统,他们的主机都报错,错误特点一样,针对这个错误我司技术推出shopex主机报错误请求解决方案,希望能给予各位一点帮助
    2011-12-12
  • WordPress开发中用于标题显示的相关函数使用解析

    WordPress开发中用于标题显示的相关函数使用解析

    这篇文章主要介绍了WordPress开发中用于标题显示的相关函数使用解析,讲解了single_cat_title函数和get_the_title函数和the_title函数的用法,需要的朋友可以参考下
    2016-01-01
  • PHP中preg_match函数正则匹配的字符串长度问题

    PHP中preg_match函数正则匹配的字符串长度问题

    这篇文章主要介绍了PHP中preg_match函数正则匹配的字符串长度问题,如果你也遇到了preg_match正则提取内容时总是空白或提取不到的话,那就可能是遇到了这个问题啦,需要的朋友可以参考下
    2015-05-05
  • php采用curl模仿登录人人网发布动态的方法

    php采用curl模仿登录人人网发布动态的方法

    这篇文章主要介绍了php采用curl模仿登录人人网发布动态的方法,分析了curl登陆人人网的原理与具体方法,非常具有实用价值,需要的朋友可以参考下
    2014-11-11
  • php 远程关机操作的代码

    php 远程关机操作的代码

    远程启动计算机 注意:iis/apache需要有windows/system/cmd.exe执行权限 name:薛如飞
    2008-12-12
  • PHPMailer 中文使用说明小结

    PHPMailer 中文使用说明小结

    PHPMailer 中文使用说明小结,对于操作phpmailer的朋友作为参考资料。
    2010-01-01
  • PHP遍历目录实现方法介绍

    PHP遍历目录实现方法介绍

    PHP中的目录遍历细说教程在编写PHP应用的过程当中,对指定目录的遍历、文件的筛选是在所难免也是至关重要的,PHP本身提供了解析和读取目录的强大方法
    2023-03-03
  • php获取客户端电脑屏幕参数的方法

    php获取客户端电脑屏幕参数的方法

    这篇文章主要介绍了php获取客户端电脑屏幕参数的方法,可获得宽度,高度,分辨率等参数,主要使用了js的方法获取客户端电脑屏幕的参数再利用Ajax返回给服务器端,进而实现获取客户端电脑屏幕参数的功能,需要的朋友可以参考下
    2015-01-01

最新评论