Implementierungsmethode für PHP-Multithread-Parallelität

高洛峰
Freigeben: 2023-03-03 19:38:02
Original
1374 Leute haben es durchsucht

Das Beispiel in diesem Artikel beschreibt die Implementierungsmethode der Multithread-Parallelität in PHP. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Multi-Threading in Java ist eine neue Thread-Sache. PHP basiert auf Apache und es gibt eine Multi-Threading-Methode am Ende von Linux.

So simulieren Sie PHP-Parallelität, wenn Sie den Apache-Server nicht steuern können

<?php
if(function_exists(&#39;date_default_timezone_set&#39;)) {
  date_default_timezone_set(&#39;PRC&#39;);
}
function a()
{
 $time = time();
 sleep(3);
 $fp = fopen(&#39;result_a&#39;.$time.&#39;.log&#39;, &#39;w&#39;);
 fputs($fp, &#39;Set in &#39; . Date(&#39;h:i:s&#39;, time()) . (double)microtime() . "rn");
 fclose($fp);
}
function b()
{
 $time = time();
 sleep(3);
 $fp = fopen(&#39;result_b&#39;.$time.&#39;.log&#39;, &#39;w&#39;);
 fputs($fp, &#39;Set in &#39; . Date(&#39;h:i:s&#39;, time()) . (double)microtime() . "rn");
 fclose($fp);
}
if(!isset($_GET[&#39;act&#39;])) $_GET[&#39;act&#39;] = &#39;a&#39;;
if($_GET[&#39;act&#39;] == &#39;a&#39;)
{
 a();
}
else if($_GET[&#39;act&#39;] == &#39;b&#39;) b();
?>
Nach dem Login kopieren

Der obige Code wird lokal geschrieben. Importieren Sie a Datei.

Wenn Sie localhost/a.php besuchen und so schnell wie möglich zwei Browser-Tabs gleichzeitig öffnen, werden Sie feststellen, dass der Unterschied in der Erstellungszeit der beiden Dateien 3 Sekunden beträgt

Aber wenn Sie localhost/a .php?act=b besuchen. Ein weiterer Besuch /a.php?act=a stellt fest, dass die beiden Dateien fast gleichzeitig erstellt wurden.

Für Apache bedeutet dieselbe URL einen Thread (oder Prozess), aber unterschiedliche URLs bedeuten Parallelität.

Wenn es in PHP eine Download-Aktion gibt

function runThread()
{
 down("http://localhost/test/a.php?act=a");
}
if($_GET[&#39;act&#39;] == &#39;run&#39;)
{
 echo &#39;start:&#39;;
 runThread();
 echo &#39; End&#39;;
}
   
http://localhost/test/a.php?act=run
http://localhost/test/a.php?act=run&s=2
Nach dem Login kopieren

Solange die Hauptzugriffs-URL unterschiedlich ist, handelt es sich um unterschiedliche Prozesse, was Parallelität bedeutet. Die Dateierstellungszeit beträgt nicht 3 Sekunden

Freunde, die einen lokalen Linux-Server haben, können auch Linux verwenden, um Parallelität zu simulieren

<?php
for ($i=0;$i<10;$i++) {
echo $i;
sleep(5);
}
?>
Nach dem Login kopieren

Speichern Geben Sie das Obige in test.php ein und schreiben Sie dann einen SHELL-Code

#!/bin/bash
for i in 1 2 3 4 5 6 7 8 9 10
do
php -q test.php &
done
Nach dem Login kopieren

Ich hoffe, dieser Artikel wird für alle hilfreich sein, die sich mit PHP-Programmierung befassen.


Weitere Artikel zu PHP-Multithread-Parallelitätsimplementierungsmethoden finden Sie auf der chinesischen PHP-Website!


Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!