¿Qué significa pcntl_fork en php? ¿Cómo crea pcntl_fork un proceso hijo?
1. Descripción general de la función pcntl_fork en PHP
La función pcntl_fork() es una función en PHP que se utiliza para crear un proceso hijo y devuelve el pid del proceso hijo creado. .
El proceso de bifurcación específico de esta función que crea un proceso hijo:
(1) Llamar a esta función crea un proceso hijo. Si la creación es exitosa, el proceso padre devuelve el pid de. el proceso hijo, y el proceso hijo devuelve 0. ;
(2) Crear un proceso hijo es en realidad una copia del proceso padre, comparte el espacio de código y copia los datos del proceso padre en otros. En otras palabras, si el proceso principal cambia los datos del proceso principal, el proceso secundario cambiará el subproceso
2. Análisis de código de muestra
1. >lt;?php
$curr_pid?=?posix_getpid (); //Obtener la identificación del proceso actual
//Escribir la identificación del proceso actual en el archivo
echo?'Proceso actual:'.$curr_pid.PHP_EOL;
p>
//Empezar a crear un proceso hijo
$son_pid?=?pcntl_fork(); //Devuelve la identificación del proceso hijo
//Ver el proceso actual
echo?'Después de crear el proceso hijo, el proceso actual es:'.posix_getpid().PHP_EOL ;
//Después de crear el proceso hijo
if($son_pid?gt ;?0){
echo?'Id. del subproceso: '. $son_pid.PHP_EOL;
}
2. El resultado después de ejecutar el código anterior es:
3. Análisis de código de muestra:
(1) Se descubre que después de crear el subproceso, el sistema cambiará al subproceso y el código en el subproceso proviene del código que contiene la función pcntl_fork. Esa línea se ejecuta
(2) Después de crear el proceso hijo, el segmento de código del proceso hijo es copiar la función pcntl_fork y los segmentos de código posteriores no se copian, sino las variables de datos específicas del proceso hijo. todavía se copiará
(3) Se puede ver que después de la bifurcación, el programa se bifurcará y ejecutará, es decir, la ejecución del proceso hijo
3 Ejemplos de escenarios comerciales de pcntl_fork.
1.php En múltiples procesos, pcntl_fork se usa comúnmente para lograr concurrencia y se usa principalmente para la implementación de algunas herramientas simples.
2. Por ejemplo, si una herramienta de monitoreo quiere monitorear varios indicadores diferentes, puede usar el proceso principal para monitorear los cambios de configuración de cada indicador y luego bifurcar un proceso secundario para cada indicador para monitorear sus propios indicadores. En una situación específica, cuando el proceso principal descubre que la configuración del indicador ha cambiado, eliminará el proceso secundario anterior y volverá a crear el proceso secundario para monitorear.
3. El proceso principal realiza operaciones de distribución empresarial y el subproceso realiza ejecución de lógica empresarial específica. ? (POR Sanxing MOOC)