PHP多进程编程的代码详解如何实现高效并发处理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1052个文字,预计阅读时间需要5分钟。
PHP多进程编程支持实现了Unix风格的进程创建、程序执行、信号处理以及进程的中断。进程控制不适合应用于Web服务器环境,当其被用于Web服务环境时,可能会带来意外的结果。
php多进程编程
PHP的进程控制支持实现了Unix方式的进程创建, 程序执行, 信号处理以及进程的中断。 进程控制不能被应用在Web服务器环境,当其被用于Web服务环境时可能会带来意外的结果。
pcntl函数
pcntl_fork():在当前进程当前位置产生分支(子进程)。
译注:fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程 号,而子进程得到的是0
<?php $pid = pcntl_fork(); //父进程和子进程都会执行下面代码 if ($pid == -1) { //错误处理:创建子进程失败时返回-1. die('could not fork'); } else if ($pid) { //父进程会得到子进程号,所以这里是父进程执行的逻辑 pcntl_wait($status); //等待子进程中断,防止子进程成为僵尸进程。 } else { //子进程得到的$pid为0, 所以这里是子进程执行的逻辑。
本文共计1052个文字,预计阅读时间需要5分钟。
PHP多进程编程支持实现了Unix风格的进程创建、程序执行、信号处理以及进程的中断。进程控制不适合应用于Web服务器环境,当其被用于Web服务环境时,可能会带来意外的结果。
php多进程编程
PHP的进程控制支持实现了Unix方式的进程创建, 程序执行, 信号处理以及进程的中断。 进程控制不能被应用在Web服务器环境,当其被用于Web服务环境时可能会带来意外的结果。
pcntl函数
pcntl_fork():在当前进程当前位置产生分支(子进程)。
译注:fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程 号,而子进程得到的是0
<?php $pid = pcntl_fork(); //父进程和子进程都会执行下面代码 if ($pid == -1) { //错误处理:创建子进程失败时返回-1. die('could not fork'); } else if ($pid) { //父进程会得到子进程号,所以这里是父进程执行的逻辑 pcntl_wait($status); //等待子进程中断,防止子进程成为僵尸进程。 } else { //子进程得到的$pid为0, 所以这里是子进程执行的逻辑。

