Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie Multithreading in PHP

So implementieren Sie Multithreading in PHP

不言
不言Original
2019-01-25 14:18:0731750Durchsuche

Multithreading kann in PHP implementiert werden. Es verwendet die alte Exec-Funktion, um Multithreading durch asynchrone Verarbeitung zu erreichen. Die Exec-Funktion selbst ist eine PHP-Funktion, die externe Programme ausführt. Schauen wir uns genauer an, wie man PHP-Multithreading implementiert.

Empfohlenes Handbuch: So implementieren Sie Multithreading in PHP vollständiges Handbuch zum Selbststudium

So implementieren Sie Multithreading in PHP

Sehen wir uns zunächst ein Beispiel an

<?So implementieren Sie Multithreading in PHP
 
class execMulti {
    function MultithreadTest {
        exec("So implementieren Sie Multithreading in PHP static_massive.So implementieren Sie Multithreading in PHP > /dev/null &");
 
        echo "处理完成了";
    }
}
?>

Wenn Sie den oben genannten Vorgang ausführen, wird der Abschluss der Verarbeitung angezeigt, noch bevor die zeitaufwändige Verarbeitung endet.

exec("So implementieren Sie Multithreading in PHP static_massive.So implementieren Sie Multithreading in PHP > /dev/null &");

Wir werden nicht auf eine Antwort warten, da der von „>/dev/null&“ zurückgegebene Wert fehlt.

Daher ist die Anzeige des Verarbeitungsabschlusses schneller als eine zeitaufwändige Verarbeitung.

Diese Methode weiß jedoch nicht, wann die zeitaufwändige Verarbeitung endet.

Vergessen Sie nicht, die Protokollausführung, die Anmeldung bei der Datenbank und andere Methoden in Betracht zu ziehen, um den Benutzern Ausführungsergebnisse zu liefern.

Methoden für Multithreading (pthreads)

Abschließend wird die Methode zur Verwendung des PHP-Erweiterungsmoduls pthreads vorgestellt.

Mit exec kann es einfacher sein als die oben beschriebene Methode.

①Konfigurieren Sie die Umgebung und installieren Sie PHP

Bitte verwenden Sie Vagrant, um Ihre Lieblingsumgebung vorzubereiten.

PHP muss die Thread-sichere Version verwenden, bei der es sich um eine sichere Multithread-Implementierung handelt.

Laden Sie die offizielle Thread-sichere Version von PHP herunter.

Greifen Sie auf den Inhalt unten zu und laden Sie ihn über das rote Feld im Bild herunter.

http://www.So implementieren Sie Multithreading in PHP.net/downloads.So implementieren Sie Multithreading in PHP

So implementieren Sie Multithreading in PHP

Darüber hinaus müssen Sie für eine threadsichere Installation -enable- using angeben die Konfigurationsoption maintainer-zts.

./configure --enable-maintainer-zts

Sie können bei Bedarf auch Apache- und MySQL-Optionen installieren.

Bestätigen Sie einfach die PHP-Version mit dem folgenden Befehl.

So implementieren Sie Multithreading in PHP -v

②pthreads-Installation

Lass uns das Zip-Format herunterladen.

https://github.com/krakjoe/pthreads/archive/master.zip

Entpacken Sie die ZIP-Datei, wechseln Sie zur entpackten Datei und führen Sie So implementieren Sie Multithreading in PHPize aus.

Wenn Sie pthreads in der PHP-Modulliste ausführen, können Sie Folgendes tun.

So implementieren Sie Multithreading in PHP -m

Je nach Umgebung sind die Einstellungen in diesem Bereich unterschiedlich. Sie können den Umgebungsnamen + pthreads verwenden, um nach Informationen zu suchen.

③ Versuchen Sie, Multithreading zu verwenden

Das Beispiel sieht wie folgt aus

<?So implementieren Sie Multithreading in PHP
class pthreadsTest extends Thread {
    public function run () {
        sleep(5);
    }
}
$ts1 = new pthreadsTest();
$ts1->start(); 
$ts2 = new pthreadsTest();
$ts2->start(); 
?>

Da Sleep(5) zweimal aufgerufen wird, ist es dauert 10 Sekunden, aber tatsächlich sind es 5 Sekunden.

Empfohlene verwandte Artikel:
1.So implementieren Sie Multithreading in PHP
2.Drei Möglichkeiten zur Implementierung von Multithreading in PHP
Verwandte Videoempfehlungen:
1.Dugu Jiujian (4)_PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Multithreading in PHP. 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