pcntl_fork în PHP

Multiprocesare și Sistem (PCNTL) PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8 Q&A / Distribuie cod

Ghid complet pentru pcntl_fork în PHP: crearea de procese paralele în arhitecturi CLI, bifurcarea execuției și execuția asincronă a sarcinilor de fundal.

Sintaxă
pcntl_fork(): int

Ce face pcntl_fork

Funcția pcntl_fork bifurcă procesul PHP curent într-un proces părinte și un proces copil identic (clonează spațiul de adrese în conformitate cu apelul de sistem UNIX fork()). Este nucleul dezvoltării de cozi de mesaje concurente, scripturi CLI de mare viteză și servere de fundal.

Valoare returnată de pcntl_fork Semnificație în fluxul de execuție
-1 Eșec: Nu s-a putut crea procesul copil (limite OS de procese atinse).
0 Codul curent rulează în interiorul procesului copil.
> 0 (un număr întreg pozitiv) Codul curent rulează în procesul părinte; valoarea este PID-ul (Process ID) copilului tocmai lansat.
Exemplu practic: Lansarea unui proces copil în fundal
<?php
$pid = pcntl_fork();

if ($pid === -1) {
    die("Eroare critică: Bifurcarea procesului a eșuat!\n");
} elseif ($pid === 0) {
    // Suntem în procesul copil:
    echo "[Copil PID: " . getmypid() . "] Procesez o sarcină grea de conversie video...\n";
    sleep(3);
    echo "[Copil PID: " . getmypid() . "] Sarcina finalizată cu succes!\n";
    exit(0); // Ieșire obligatorie pentru a preveni rularea codului părintelui
} else {
    // Suntem în procesul părinte:
    echo "[Părinte PID: " . getmypid() . "] Am lansat procesul copil cu PID: " . $pid . "\n";
    echo "[Părinte] Pot continua să deservesc alte cereri fără blocaj!\n";
}
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: pcntl_fork

Ai o nelămurire despre utilizarea comenzii pcntl_fork sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.