PHP multi-process problem solving_PHP tutorial
Moreover, if the input data is illegal and the script does not detect it, resulting in abort, it will also make you very unhappy.
What? What should I do?
Haha, don’t worry, multi-process will help you!
That , why is this?
Advantages:
1. When using multiple processes, after the child process ends, the kernel will be responsible for recycling resources
2. When using multiple processes, the abnormal exit of the child process will not cause the entire process Thread to exit. . The parent process still has a chance to rebuild the process.
3. A resident main process, only responsible for task distribution, the logic is clearer.
Then, how to do it?
Next, we use POSIX provided by PHP and Pcntl series functions to implement a PHP command parser. The main process is responsible for accepting user input, and then forking the sub-process to execute, and is responsible for echoing the end status of the sub-process.
The code is as follows, I have added comments, if there are any If you understand, you can read the relevant functions in the manual, or reply to the message.
#!/bin /env php
/**A example denoted muti-process application in php
* @filename fork.php
* @touch date Wed 10 Jun 2009 10:25:51 PM CST
* @author Laruence
* @license http://www.zend.com/license/3_0.txt PHP License 3.0
* @version 1.0.0
*/
/**Make sure this function can only be run in SHELL*/
if
(substr(php_sapi_name(), 0, 3) !== 'cli')
{
die("This Programe can only be run in CLI mode");
}
/**Turn off the maximum execution event limit. In CLI mode, this statement is actually unnecessary.*/
set_time_limit(0 );
$pid = posix_getpid(); //Get the main process ID
$user = posix_getlogin(); //Get the user name
echo
<<
input php code to execute by fork a new process
input quit to exit
Shell Executor version 1.0.0 by laruence
EOD;
while
(true)
{
$prompt = "n{$user}$ ";
$input = readline($prompt);
readline_add_history($input);
if
($input == 'quit')
{
break;
}
process_execute($input . ';');
}
exit(0);
function
process_execute($input)
{
$pid = pcntl_fork(); //Create sub-process
if
($pid == 0)
{//Sub-process
$pid = posix_getpid();
echo
"* Process {$pid} was created, and Executed:nn";
eval($input); //Parse command
exit ;
}
else
{//Main process
$pid = pcntl_wait($status, WUNTRACED); //Get the end status of the child process
if
(pcntl_wifexited($status ))
{
echo
"nn* Sub process: {$return['pid']} exited with {$status}";
}
}
}

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

To work on file upload we are going to use the form helper. Here, is an example for file upload.

In this chapter, we are going to learn the following topics related to routing ?

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Validator can be created by adding the following two lines in the controller.
