


So implementieren Sie echtes PHP-Multithreading mithilfe von pthreads
Dieser Artikel stellt hauptsächlich die Methode zur Verwendung von Pthreads vor, um echtes PHP-Multithreading zu erreichen. Er hat einen gewissen Referenzwert. Jetzt kann ich ihn mit Ihnen teilen
PHP 5.3 oder höher Mit der PHP-Erweiterung pthreads kann PHP Multithreading wirklich unterstützen. Multithreading kann die Programmausführungszeit bei der Verarbeitung sich wiederholender zyklischer Aufgaben erheblich verkürzen.
Ich habe in meinem vorherigen Artikel gesagt, dass der Leistungsengpass der meisten Websites nicht auf dem PHP-Server liegt, da er den Server einfach horizontal vergrößern kann Anzahl der CPU-Kerne, um damit problemlos zurechtzukommen (für verschiedene Cloud-Hosts ist es bequemer, den VPS oder die Anzahl der CPU-Kerne zu erhöhen. Sie können VPS direkt mit dem Backup-Image hinzufügen, ohne das Betriebssystem und die Umgebung installieren und konfigurieren zu müssen ). Stattdessen liegt es in der MySQL-Datenbank.
Wenn Sie eine MySQL-Datenbank und eine gemeinsame SQL-Abfrage verwenden, können Sie möglicherweise mit der Geschäftslogik umgehen. Wenn Sie jedoch auf eine große Anzahl gleichzeitiger Anforderungen stoßen, wird die Arbeit aufhören.
Wenn Sie eine NoSQL-Datenbank verwenden, sind möglicherweise zehn Abfragen erforderlich, um dieselbe Geschäftslogik zu verarbeiten, aber jede Abfrage ist schneller als Zehntausende von NoSQL-Abfragen Anfragen/Sekunde sind überhaupt kein Problem.
Wenn Sie PHP-Multithreading hinzufügen, NoSQL über zehn Threads gleichzeitig abfragen und die Ergebniszusammenfassungsausgabe zurückgeben, ist die Geschwindigkeit höher. In unserem eigentlichen APP-Produkt rufen wir eine PHP-Schnittstelle auf, die Produkte in Echtzeit basierend auf Benutzerpräferenzen empfiehlt. PHP muss 500 bis 1.000 Abfragen an die BigSea NoSQL-Datenbank initiieren, um die personalisierten Präferenzproduktdaten des Benutzers in Echtzeit zu berechnen PHP-Multithreading ist sehr offensichtlich.
Download der PHP-Erweiterung: https://github.com/krakjoe/pthreads
PHP-Handbuchdokument: http://php.net/manual/zh/book .pthreads.php
1. Erweiterte Kompilierung und Installation (Linux), der Kompilierungsparameter --enable-maintainer-zts ist eine erforderliche Option:
cd /Data/tgz/php-5.5.1 ./configure --prefix=/Data/apps/php --with-config-file-path=/Data/apps/php/etc --with-mysql=/Data/apps/mysql --with-mysqli=/Data/apps/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir=/Data/apps/libs --with-jpeg-dir=/Data/apps/libs --with-png-dir=/Data/apps/libs --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt=/Data/apps/libs --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-opcache --with-pdo-mysql --enable-maintainer-zts make clean make make install unzip pthreads-master.zip cd pthreads-master /Data/apps/php/bin/phpize ./configure --with-php-config=/Data/apps/php/bin/php-config make make install
In php.ini hinzufügen:
vi /Data/apps/php/etc/php.ini extension = "pthreads.so"
Gibt eine PHP-Multithreading- und For-Schleife zum Erfassen des PHP-Codebeispiels der Baidu-Suchseite:
<?php class test_thread_run extends Thread { public $url; public $data; public function __construct($url) { $this->url = $url; } public function run() { if(($url = $this->url)) { $this->data = model_http_curl_get($url); } } } function model_thread_result_get($urls_array) { foreach ($urls_array as $key => $value) { $thread_array[$key] = new test_thread_run($value["url"]); $thread_array[$key]->start(); } foreach ($thread_array as $thread_array_key => $thread_array_value) { while($thread_array[$thread_array_key]->isRunning()) { usleep(10); } if($thread_array[$thread_array_key]->join()) { $variable_data[$thread_array_key] = $thread_array[$thread_array_key]->data; } } return $variable_data; } function model_http_curl_get($url,$userAgent="") { $userAgent = $userAgent ? $userAgent : 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_TIMEOUT, 5); curl_setopt($curl, CURLOPT_USERAGENT, $userAgent); $result = curl_exec($curl); curl_close($curl); return $result; } for ($i=0; $i < 100; $i++) { $urls_array[] = array("name" => "baidu", "url" => "http://www.baidu.com/s?wd=".mt_rand(10000,20000)); } $t = microtime(true); $result = model_thread_result_get($urls_array); $e = microtime(true); echo "多线程:".($e-$t)." "; $t = microtime(true); foreach ($urls_array as $key => $value) { $result_new[$key] = model_http_curl_get($value["url"]); } $e = microtime(true); echo "For循环:".($e-$t)." "; ?>
Das Obige ist hoffentlich der gesamte Inhalt dieses Artikels Es wird für das Lernen aller nützlich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
So lösen Sie das Problem verstümmelter Zeichen beim Importieren von CSV-Dateien in PHP
Das obige ist der detaillierte Inhalt vonSo implementieren Sie echtes PHP-Multithreading mithilfe von pthreads. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP unterstützt kein Multithreading. Um Multithreading zu verwenden, müssen Sie die pthread-Erweiterung installieren. maintainer-zts-Parameter zum Neukompilieren von PHP.

So implementieren Sie PHP-Multithreading für einen leistungsstarken RPC-Server. Mit der kontinuierlichen Entwicklung des Internets steigen die Anforderungen an verteilte Systeme. Remote Procedure Call (RPC) ist einer der Kommunikationsmechanismen, die in diesen verteilten Systemen häufig verwendet werden. Es ermöglicht Programmen auf verschiedenen Maschinen, Remote-Funktionen genauso aufzurufen wie lokale Funktionen und ermöglicht so die Datenübertragung und Funktionsaufrufe zwischen Systemen. In der tatsächlichen Entwicklung wird Multithreading-Technologie verwendet, um die Leistung und die gleichzeitigen Verarbeitungsfähigkeiten des Systems zu verbessern

So verbessern Sie die Lese- und Schreibleistung von Datenbanken durch PHP-Multithreading. Mit der rasanten Entwicklung des Internets ist die Lese- und Schreibleistung von Datenbanken zu einem zentralen Thema geworden. Wenn unsere Anwendung häufig Lese- und Schreibvorgänge in der Datenbank ausführen muss, führt die Verwendung eines Single-Thread-Ansatzes häufig zu Leistungsengpässen. Die Verwendung von Multithreading kann die Effizienz beim Lesen und Schreiben von Datenbanken verbessern und dadurch die Gesamtleistung verbessern. Als häufig verwendete serverseitige Skriptsprache verfügt PHP über eine flexible Syntax und leistungsstarke Funktionen für den Datenbankbetrieb. In diesem Artikel wird erläutert, wie Sie die PHP-Multithreading-Technologie zur Verbesserung nutzen können

So verbessern Sie die Geschwindigkeit der Sortierung großer Datenmengen durch PHP-Multithreading. Mit der rasanten Entwicklung des Internets und der Popularität von Big Data steigt auch die Nachfrage nach der Verarbeitung großer Datenmengen. Unter anderem ist für das häufige Problem der Datensortierung die Verbesserung der Verarbeitungsgeschwindigkeit zu einem dringend zu lösenden Problem geworden. Im Bereich PHP gilt die Multithreading-Technologie als effektive Lösung. In diesem Artikel erfahren Sie, wie Sie die Geschwindigkeit der Sortierung großer Datenmengen durch PHP-Multithreading verbessern können. 1. Das Prinzip des Multithreadings Multithreading bezieht sich auf die Existenz mehrerer Threads gleichzeitig. Mehrere Threads können gleichzeitig unterschiedliche Aufgaben ausführen.

So verbessern Sie die Leistung von Datenbankabfragen durch PHP-Multithreading. Einführung: Mit der rasanten Entwicklung des Internets ist die Leistung von Datenbankabfragen zu einer der wichtigsten Herausforderungen für Entwickler geworden. Als weit verbreitete serverseitige Skriptsprache spielt PHP auch bei Datenbankabfragen eine wichtige Rolle. In diesem Artikel wird untersucht, wie die Leistung von Datenbankabfragen mithilfe der PHP-Multithreading-Technologie verbessert werden kann, um den Anforderungen einer hohen Anzahl gleichzeitiger Anforderungen gerecht zu werden. 1. Was ist Multithreading? Bevor wir diskutieren, wie Multithreading zur Verbesserung der Datenbankabfrageleistung verwendet werden kann, müssen wir zunächst verstehen, was Multithreading ist. beliebt

PHP-Multithread-Programmierpraxis: Verwendung von Coroutinen zur Implementierung der gleichzeitigen Aufgabenverarbeitung Mit der Entwicklung von Internetanwendungen werden die Anforderungen an die Serverleistung und die gleichzeitigen Verarbeitungsfunktionen immer höher. Herkömmliche Multithread-Programmierung ist in PHP nicht einfach zu implementieren. Um die gleichzeitigen Verarbeitungsfunktionen von PHP zu verbessern, können Sie versuchen, Coroutinen zur Implementierung von Multithread-Programmierung zu verwenden. Coroutine ist ein leichtes Parallelitätsverarbeitungsmodell, das die gleichzeitige Ausführung mehrerer Aufgaben in einem einzelnen Thread implementieren kann. Im Vergleich zu herkömmlichem Multithreading sind die Kosten für den Coroutine-Wechsel geringer

In der PHP-Programmierung ist Multithreading eine sehr wichtige Programmiertechnik, wenn wir mehrere Aufgaben ausführen oder mehrere Anfragen gleichzeitig bearbeiten müssen. Durch Multithreading können mehrere Threads gleichzeitig ausgeführt werden, wodurch die Programmeffizienz und das Benutzererlebnis verbessert werden. 1. Einführung in PHP-Multithreading PHP-Multithreading bezieht sich auf ein Programm, das zwei oder mehr Threads gleichzeitig ausführt. Jeder Thread ist ein unabhängiger Unterprozess und kann Aufgaben unabhängig ausführen. In PHP kann Multithreading über die Erweiterung pcntl gehandhabt werden. Die pcntl-Erweiterung ist eine von PHP unterstützte Prozesssteuerungserweiterung

So beschleunigen Sie das Herunterladen großer Dateien durch PHP-Multithreading. Im heutigen Internetzeitalter ist die Dateiübertragung immer häufiger und wichtiger geworden. Bei größeren Dateien erhöht sich jedoch die Downloadzeit erheblich, was zu Unannehmlichkeiten für die Benutzer führt. Um die Download-Geschwindigkeit großer Dateien zu verbessern, können wir eine Beschleunigung durch PHP-Multithreading erreichen. In diesem Artikel erfahren Sie, wie Sie den Download großer Dateien durch PHP-Multithreading beschleunigen können. Um das PHP-Multithread-Downloaden zu implementieren, müssen wir zunächst einige Vorbereitungen treffen. Stellen Sie sicher, dass die neueste PHP-Version auf dem Server installiert und aktiviert ist
