Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie die Funktion pcntl, um mehrere Prozesse in PHP auszuführen

So verwenden Sie die Funktion pcntl, um mehrere Prozesse in PHP auszuführen

墨辰丷
墨辰丷Original
2018-06-12 13:49:191263Durchsuche

Dieser Artikel stellt hauptsächlich die Verwendung von pcntl für mehrere Prozesse vor. Er ist von großem praktischem Wert 🎜>Dieser Artikel beschreibt die Verwendung von PHP anhand von Beispielen für die Verwendung von pcntl. Die konkrete Analyse lautet wie folgt:

PHP kann mithilfe der PCNTL-Funktionsreihe auch eine Transaktion mit mehreren Prozessen abwickeln. Ich muss beispielsweise 800.000 Daten aus der Datenbank abrufen und dann eine Reihe nachfolgender Verarbeitungen durchführen. Verwenden Sie zu diesem Zeitpunkt einen einzigen Prozess? Sie können bis heute nächstes Jahr warten. Daher sollten Sie die Funktion pcntl verwenden.

Angenommen, ich möchte 20 Prozesse starten und 1-80 W Daten in 20 Teile aufteilen. Der Hauptprozess wartet, bis alle untergeordneten Prozesse abgeschlossen sind, bevor er beendet wird:

$max = 800000;
$workers = 20;
$pids = array();
for($i = 0; $i < $workers; $i++){
  $pids[$i] = pcntl_fork();
  switch ($pids[$i]) {
    case -1:
      echo "fork error : {$i} \r\n";
      exit;
    case 0:
      $param = array(
        &#39;lastid&#39; => $max / $workers * $i,
        &#39;maxid&#39; => $max / $workers * ($i+1),
      );
      $this->executeWorker($input, $output, $param);
      exit;
    default:
      break;
  }
}
foreach ($pids as $i => $pid) {
  if($pid) {
    pcntl_waitpid($pid, $status);
  }
}

Hier, wenn pcntl_fork herauskommt In Zukunft wird ein PID-Wert im untergeordneten Prozess zurückgegeben und ist der PID des untergeordneten Prozesses (>0). Wenn der PID -1 ist, bedeutet dies, dass die Verzweigung fehlgeschlagen ist .

Durch die Verwendung eines $pids-Arrays kann der Hauptprozess warten, bis alle Prozesse abgeschlossen sind, bevor er beendet wird

Zusammenfassung

: Das Obige ist der gesamte Inhalt dieses Artikels, I Ich hoffe, es kann helfen. Das Lernen aller hilft. Verwandte Empfehlungen:

Die Datenbank in PHP implementiert sicherere permanente Anmelde- und Erinnerungsfunktionen

Verwenden Sie in PHP generierte Methoden zur Verschlüsselung und Entschlüsseln öffentlicher Schlüssel und privater Schlüssel

PHP zeichnet Benutzernamen und Passwörter basierend auf Cookies auf

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Funktion pcntl, um mehrere Prozesse in PHP auszuführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn