Heim Backend-Entwicklung PHP-Tutorial PHP implementiert nicht blockierende und Multithread-Programmierung

PHP implementiert nicht blockierende und Multithread-Programmierung

Jul 20, 2018 pm 05:09 PM
php实现

PHP-Multithread-Programmierimplementierung und nicht blockierende Implementierung. PHP unterstützt standardmäßig kein Multithreading. Um Multithreading zu verwenden, müssen Sie die pthread-Erweiterung installieren. Nach der Installation können Sie Multithreading durchführen.

Thread-Konzept

Thread ist die kleinste Einheit, die das Betriebssystem planen kann

Ein Multithread-Programm wird eher von der geplant Betriebssystem als ein Single-Thread-Programm Größer, daher sind Multi-Thread-Programme im Allgemeinen effizienter als Single-Thread-Programme

Mehrere Threads eines Multi-Thread-Programms können gleichzeitig auf mehreren Kernen eines Multi-Core ausgeführt werden CPU, die die Multi-Core-Maschine voll ausnutzt;

Der Systemaufwand für das Erstellen und Wechseln von Threads ist geringer als der von Prozessen und daher bis zu einem gewissen Grad effizienter als mehrere Prozesse 🎜>Threads teilen sich von Natur aus den Speicherplatz und die Kommunikation zwischen Threads ist einfacher. Vermeidet die Einführung neuer Komplexität durch Prozess-IPC.

Wann werden Threads verwendet?

Das Blockieren von E/A führt zu einer Aufgabenplanung im Betriebssystem und blockiert die aktuelle Aufgabe, wenn also viele E/A vorhanden sind im Code, Bei Verwendung von Multithreading kann der Code parallelisiert werden

Multithreading kann die CPU voll ausnutzen. Wenn also mehrere große Berechnungscodes vorhanden sind, können Sie zur Ausführung auch Multithreading verwenden sie parallel

Verwenden Sie das Gute und das Schlechte von Threads

Die von PHP implementierte Thread-Sicherheit verwendet hauptsächlich den TSRM-Mechanismus, um globale Variablen und statische Variablen zu isolieren und global zu kopieren Variablen und statische Variablen für jeden Thread. Jeder Thread verwendet ein Backup des Hauptthreads, wodurch Variablenkonflikte und Thread-Sicherheitsprobleme vermieden werden.

Sobald der Sub-Thread mit der Ausführung beginnt, kann der Haupt-Thread die Ausführungsdetails des Sub-Threads nicht mehr anpassen

Erweiterte Installation

PHP Unterstützt standardmäßig nicht mehrere Threads. Um die pthread-Erweiterung zu installieren, müssen Sie den Parameter --enable-maintainer-zts verwenden, um PHP neu zu kompilieren Thread-Sicherheit beim Kompilieren von PHP.

./configure --enable-maintainer-zts --with-tsrm-pthreads
Nach dem Login kopieren

Instanz

class Request extends Thread {    public $url;    public $response;    public function __construct($url) {        $this->url = $url;
    }    public function run() {        $this->response = file_get_contents($this->url);
    }
}
$chG = new Request("www.google.com");
$chB = new Request("www.baidu.com");
$chG ->start();
$chB ->start();
$chG->join();
$chB->join();
$gl = $chG->response;
$bd = $chB->response;
Nach dem Login kopieren

PHP nicht blockierend

Verwenden Sie fastcgi_finish_request()

echo "program start...";
fastcgi_finish_request();
sleep(1);echo 'debug1...';
sleep(10);echo 'debug2...';
Nach dem Login kopieren

Verwenden Sie fsockopen ( )

stream_set_blocking()


cURL verwenden

$cmh = curl_multi_init();


Gearman/Swoole-Erweiterung verwenden

Cache und Warteschlange verwenden

redis


Systembefehl aufrufen

$cmd = 'nohup php ./processd.php $someVar >/dev/null &';


Verwenden Sie pcntl_fork()

PHP unterstützt nativ

yield


Verwandte Empfehlungen:


PHP-Installations-Threads-Multi-Thread-Erweiterung, PHP-Threads-Multi-Threading

Das obige ist der detaillierte Inhalt vonPHP implementiert nicht blockierende und Multithread-Programmierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie steuere ich die Cache-Ablaufzeit in PHP? Wie steuere ich die Cache-Ablaufzeit in PHP? Jun 19, 2023 pm 11:23 PM

Mit der Beliebtheit von Internetanwendungen rückt die Reaktionsgeschwindigkeit von Websites immer mehr in den Fokus der Benutzer. Um schnell auf Benutzeranfragen reagieren zu können, verwenden Websites häufig Caching-Technologie zum Zwischenspeichern von Daten und reduzieren so die Anzahl der Datenbankabfragen. Allerdings hat die Cache-Ablaufzeit einen wichtigen Einfluss auf die Antwortgeschwindigkeit. In diesem Artikel werden Methoden zur Steuerung der Cache-Ablaufzeit erläutert, um PHP-Entwicklern dabei zu helfen, die Caching-Technologie besser anzuwenden. 1. Was ist die Cache-Ablaufzeit? Die Cache-Ablaufzeit bezieht sich auf den Zeitpunkt, zu dem die Daten im Cache als abgelaufen gelten. Es bestimmt, wann die Daten im Cache benötigt werden

So verwenden Sie PHP zum Implementieren von Dateikonvertierungs- und Formatkonvertierungsfunktionen So verwenden Sie PHP zum Implementieren von Dateikonvertierungs- und Formatkonvertierungsfunktionen Sep 05, 2023 pm 03:40 PM

So verwenden Sie PHP zum Implementieren von Dateikonvertierungs- und Formatkonvertierungsfunktionen 1. Einführung Bei der Entwicklung von Webanwendungen müssen wir häufig Dateikonvertierungs- und Formatkonvertierungsfunktionen implementieren. Unabhängig davon, ob Sie Bilddateien in andere Formate oder Textdateien von einer Kodierung in eine andere konvertieren, sind diese Vorgänge häufig erforderlich. In diesem Artikel wird anhand von Codebeispielen beschrieben, wie diese Funktionen mit PHP implementiert werden. 2. Dateikonvertierung 2.1 Bilddateien in andere Formate konvertieren In PHP können wir verwenden

Implementierungsprinzip eines konsistenten Hash-Algorithmus für den PHP-Datencache Implementierungsprinzip eines konsistenten Hash-Algorithmus für den PHP-Datencache Aug 10, 2023 am 11:10 AM

Implementierungsprinzip des konsistenten Hash-Algorithmus für den PHP-Datencache Der konsistente Hashing-Algorithmus (ConsistentHashing) ist ein Algorithmus, der häufig für das Daten-Caching in verteilten Systemen verwendet wird und die Anzahl der Datenmigrationen minimieren kann, wenn das System erweitert und verkleinert wird. In PHP kann die Implementierung konsistenter Hashing-Algorithmen die Effizienz und Zuverlässigkeit des Daten-Caching verbessern. In diesem Artikel werden die Prinzipien konsistenter Hashing-Algorithmen vorgestellt und Codebeispiele bereitgestellt. Das Grundprinzip des konsistenten Hashing-Algorithmus verteilt Daten auf verschiedene Knoten, jedoch wenn der Knoten

Schutz der Benutzerdaten des Online-Abstimmungssystems in PHP implementiert Schutz der Benutzerdaten des Online-Abstimmungssystems in PHP implementiert Aug 09, 2023 am 10:29 AM

Schutz der Privatsphäre der Benutzer des in PHP implementierten Online-Abstimmungssystems Mit der Entwicklung und Popularisierung des Internets wurden immer mehr Abstimmungsaktivitäten auf Online-Plattformen verlagert. Der Komfort von Online-Abstimmungssystemen bringt den Benutzern viele Vorteile, wirft aber auch Bedenken hinsichtlich der Verletzung der Privatsphäre der Benutzer auf. Der Schutz der Privatsphäre ist zu einem wichtigen Aspekt bei der Gestaltung von Online-Abstimmungssystemen geworden. In diesem Artikel wird erläutert, wie Sie mit PHP ein Online-Abstimmungssystem schreiben, und der Schwerpunkt liegt auf dem Problem des Schutzes der Privatsphäre der Benutzer. Beim Entwurf und der Entwicklung eines Online-Abstimmungssystems müssen die folgenden Grundsätze befolgt werden, um dies sicherzustellen

So verwenden Sie PHP zur Implementierung der Benutzerregistrierungsfunktion So verwenden Sie PHP zur Implementierung der Benutzerregistrierungsfunktion Sep 25, 2023 pm 06:13 PM

So verwenden Sie PHP zur Implementierung der Benutzerregistrierungsfunktion In modernen Netzwerkanwendungen ist die Benutzerregistrierungsfunktion eine sehr häufige Anforderung. Über die Registrierungsfunktion können Nutzer eigene Accounts erstellen und entsprechende Funktionen nutzen. In diesem Artikel wird die Benutzerregistrierungsfunktion über die Programmiersprache PHP implementiert und detaillierte Codebeispiele bereitgestellt. Zuerst müssen wir ein HTML-Formular erstellen, um die Registrierungsinformationen des Benutzers zu erhalten. In das Formular müssen wir einige Eingabefelder einfügen, wie z. B. Benutzername, Passwort, E-Mail usw. Formularfelder können entsprechend den tatsächlichen Anforderungen angepasst werden.

Wie man mit PHP mobile Anpassung und responsives Design implementiert Wie man mit PHP mobile Anpassung und responsives Design implementiert Sep 05, 2023 pm 01:04 PM

Wie man PHP zur Implementierung von mobiler Anpassung und responsivem Design verwendet. Mobile Anpassung und responsives Design sind wichtige Praktiken in der modernen Website-Entwicklung. Sie können gute Anzeigeeffekte der Website auf verschiedenen Geräten gewährleisten. In diesem Artikel stellen wir anhand von Codebeispielen vor, wie Sie PHP zur Implementierung mobiler Anpassung und responsivem Design verwenden. 1. Verstehen Sie die Konzepte der mobilen Anpassung und des responsiven Designs. Unter mobiler Anpassung versteht man die Bereitstellung unterschiedlicher Stile und Layouts für verschiedene Geräte basierend auf den unterschiedlichen Eigenschaften und Größen des Geräts. Unter Responsive Design versteht man die Verwendung von

So implementieren Sie die Fingerabdruck-Anmeldung für das WeChat-Miniprogramm in PHP So implementieren Sie die Fingerabdruck-Anmeldung für das WeChat-Miniprogramm in PHP May 31, 2023 pm 10:40 PM

Mit der kontinuierlichen Weiterentwicklung der WeChat-Miniprogramme entscheiden sich immer mehr Benutzer für die Anmeldung bei WeChat-Miniprogrammen. Um das Anmeldeerlebnis der Benutzer zu verbessern, haben WeChat-Miniprogramme damit begonnen, die Anmeldung per Fingerabdruck zu unterstützen. In diesem Artikel stellen wir vor, wie Sie mit PHP die Fingerabdruck-Anmeldung für das WeChat-Applet implementieren. 1. Verstehen Sie die Fingerabdruck-Anmeldung von WeChat-Miniprogrammen. Auf der Grundlage von WeChat-Miniprogrammen können Entwickler die Fingerabdruckerkennungsfunktion von WeChat verwenden, um Benutzern die Anmeldung bei WeChat-Miniprogrammen über Fingerabdrücke zu ermöglichen und so die Sicherheit und den Komfort des Anmeldeerlebnisses zu verbessern. 2. Die Vorbereitungsarbeiten werden mit PHP durchgeführt

PHP-Implementierung der Flussdiagrammtechniken für WeChat-Applet-Operationen PHP-Implementierung der Flussdiagrammtechniken für WeChat-Applet-Operationen May 31, 2023 pm 07:51 PM

Mit der rasanten Entwicklung des mobilen Internets erfreuen sich WeChat-Miniprogramme bei Nutzern immer größerer Beliebtheit und auch PHP spielt als leistungsstarke Programmiersprache eine wichtige Rolle im Entwicklungsprozess von Miniprogrammen. In diesem Artikel werden die Techniken zur Implementierung des WeChat-Applet-Betriebsablaufdiagramms in PHP vorgestellt. Erhalten Sie access_token Während des Entwicklungsprozesses der Verwendung des WeChat-Applets müssen Sie zunächst das access_token erhalten, ein wichtiger Berechtigungsnachweis für die Realisierung der Funktionsweise des WeChat-Applets. Der Code zum Abrufen von access_token in PHP lautet wie folgt: f

See all articles