Heim > php教程 > PHP开发 > Hauptteil

Zusammenfassung der Methoden zum Generieren reiner statischer HTML-Webseiten aus der gesamten Website mithilfe von PHP

高洛峰
Freigeben: 2016-12-21 11:25:41
Original
1422 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 schreibt eine Datei lokal.

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 eine Download-Aktion in PHP 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;;
}
Nach dem Login kopieren

http://localhost/test/a.php?act=run

http://localhost/ test /a.php?act=run&s=2

Solange die von den Hauptbenutzern besuchten URLs unterschiedlich sind, werden sie als unterschiedliche Prozesse betrachtet, 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 Sie das Obige als test.php und schreiben Sie dann eine 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


Weitere PHP-Methoden zum Generieren reiner statischer HTML-Webseiten für die gesamte Website finden Sie auf der chinesischen PHP-Website für verwandte Artikel!


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 Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage