Dieser Artikel stellt hauptsächlich das PHP7-Multithreading-Tutorial vor.
Ich wollte schon immer einen Crawler schreiben, also habe ich einen in PHP geschrieben. PHP unterstützt kein Multithreading, daher ist die Crawling-Effizienz sehr gering, und die Speicher- und CPU-Auslastung ist sehr hoch. Ich habe etwa 10 Prozesse zum Crawlen geöffnet und die Crawling-Zeit optimiert Mac Pro wäre immer noch fast abgestürzt. Also begann ich, PHP7 in Kombination mit dem Multithreading-Tool pthreads zu verwenden. Nach dem Test war ich mit der Stabilität, Effizienz, dem Speicher und der CPU-Auslastung sehr zufrieden. Im Folgenden wird der Multithread-Umgebungsaufbau von PHP7 vorgestellt.
PHP7 installieren
Alle folgenden Befehle werden unter dem Root-Benutzer ausgeführt, um PHP7 herunterzuladen Je nach Situation werden auch alle Versionen nach PHP5.4 unterstützt.
wget http://ar2.php.net/get/php-7.0.3.tar.gz/from/this/mirror -O php.tar.gz tar xvfz php.tar.gz cd php
Kompilieren und installieren.
Optionen können selbst ausgewählt werden, sodass mehrere Versionen von PHP koexistieren können. Wenn Sie jedoch nur Crawler verwenden, müssen außer Curl keine anderen Erweiterungen installiert werden. Wenn Sie auf Probleme stoßen, die nicht installiert werden können, können Sie selbst Lösungen finden. Wenn ich beispielsweise während der Installation auf ein Symbol stoße, das nicht gefunden werden kann, kann ich es einfach ohne tun.
./configure --prefix=/usr/local/php7 --without-iconv --enable-maintainer-zts --with-curl make make install
Die Installation ist abgeschlossen
Dann beginnen Sie mit der Installation von pthreads. Die Installation mit pecl ist super einfach.
cd /usr/local/php7/bin ./pecl install pthreads
Installation abgeschlossen
Konfigurationsdatei
in /usr Erstellen Sie eine neue php.ini-Datei im Verzeichnis /local/php7/lib/. Die ursprüngliche Datei befindet sich im Stammverzeichnis des PHP-Quellcodes. Bearbeiten Sie dann php.ini und fügen Sie
< hinzu 🎜>extension="pthreads.so"
Installation abgeschlossen
Überprüfen Sie, ob die Installation erfolgreich ist
Ausführen
/usr/local/php7/bin/php -m
Liste der Modulunterstützung anzeigen. Wenn pthreads vorhanden ist, wurde die Umgebung erfolgreich erstellt. Oder bearbeiten Sie die Datei test.php
<?php $thread = new class extends Thread { public function run() { echo "Hello World\n"; } }; $thread->start() && $thread->join(); ?>
Die erfolgreiche Ausgabe von Hello World zeigt Erfolg an.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.
Verwandte Empfehlungen:
PHPMSSQL-Paging-Beispiel_php-Fähigkeiten
Das obige ist der detaillierte Inhalt vonPHP7-Multithreading-Tutorial. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!