Heim >Backend-Entwicklung >PHP-Tutorial >PHP implementiert Multithreading
Realisieren Sie Multithreading von PHP-Programmen durch die Socket-Methode von PHP. PHP selbst unterstützt kein Multithreading. Wie implementiert man also Multithreading in PHP? Sie können darüber nachdenken, der WEB-Server selbst unterstützt Multithreading. Jeder Besucher ruft beim Zugriff auf die WEB-Seite einen neuen Thread auf. Dadurch können wir den eigenen Thread des WEB-Servers verwenden, um das Problem zu lösen, dass PHP kein Multithreading unterstützt.
Das Folgende ist ein PHP-Multithread-Code, der über fsockopen() eine Socket-Verbindung herstellt und dann mit fputs() eine Nachricht sendet:
$fp=fsockopen($_SERVER['HTTP_HOST'] , 80,&$errno,&$errstr,5);
if(!$fp){
echo "$errstr ($errno)
n";
}
fputs($fp,"GET $_SERVER[PHP_SELF]?flag=1rn");
fclose($fp);
Der obige Code ist nur ein Thread-Operationsprozess. Das Ausführen einiger weiterer solcher Operationen ist Multithreading. Die aktuellen sogenannten Multithread-Programme von PHP basieren alle auf dieser Methode.
Ein vollständiger Thread-Klassencode ist unten angegeben.
/**
@title:PHP Multi-Threading-Klasse (Thread)
@version:1.0
@author:axgle
class thread {
var $count
function thread($count=1) {
$this-> ;count=$count;
}
function _submit() {
for($i=1;$i<=$this->count;$i ) $this->_thread() ;
return true; >if(!$fp){
echo "$errstr ($errno)
n";
}
fputs($fp,"GET $_SERVER[PHP_SELF]?flag= 1rn");
fclose($fp);
}
function exec($func) {
isset($_GET['flag'])?call_user_func($func):$this- >_submit();
}
}
//Anwendungsbeispiel:
$th=new thread(10);//10 threads
$th->exec(' demo ');//Eine benutzerdefinierte Funktion ausführen
function demo() {
fopen('data/'.microtime(),'w');
?>
http://codechina.spaces.live.com/blog/cns!bca6db10a924c24!575.entry
Das Obige stellt die Implementierung von Multithreading in PHP vor, einschließlich seiner Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.