Jeder weiß, dass die Sprache PHP selbst nur Single-Threaded sein kann. Nachdem ein Arbeitsschritt abgeschlossen ist, wird der nächste Schritt ausgeführt.
Aber manchmal benötigen wir asynchrone Operationen und mehrere Threads, die gleichzeitig ausgeführt werden
Lassen Sie uns vorstellen, wie PHP Multithread-Operationen implementiert.
Der Code ist wie folgt folgt: Nur als Referenz
<?php /** * @title: PHP多线程类(Thread) * @version: 1.0 * @author: php.cn < web@php.cn > * @published: 2010-11-2 * * PHP多线程应用示例: * require_once 'thread.class.php'; * $thread = new thread(); * $thread->addthread('action_log','a'); * $thread->addthread('action_log','b'); * $thread->addthread('action_log','c'); * $thread->runthread(); * * function action_log($info) { * $log = 'log/' . microtime() . '.log'; * $txt = $info . "\r\n\r\n" . 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "\r\n"; * $fp = fopen($log, 'w'); * fwrite($fp, $txt); * fclose($fp); * } */ class thread { var $hooks = array(); var $args = array(); function thread() { } function addthread($func) { $args = array_slice(func_get_args(), 1); $this->hooks[] = $func; $this->args[] = $args; return true; } function runthread() { if(isset($_GET['flag'])) { $flag = intval($_GET['flag']); } if($flag || $flag === 0) { call_user_func_array($this->hooks[$flag], $this->args[$flag]); } else { for($i = 0, $size = count($this->hooks); $i < $size; $i++) { $fp=fsockopen($_SERVER['HTTP_HOST'],$_SERVER['SERVER_PORT']); if($fp) { $out = "GET {$_SERVER['PHP_SELF']}?flag=$i HTTP/1.1\r\n"; $out .= "Host: {$_SERVER['HTTP_HOST']}\r\n"; $out .= "Connection: Close\r\n\r\n"; fputs($fp,$out); fclose($fp); } } } } } $thread = new thread(); $thread->addthread('func1','info1'); $thread->addthread('func2','info2'); $thread->addthread('func3','info3'); $thread->runthread(); //说明: //addthread是添加线程函数,第一个参数是函数名,之后的参数(可选)为传递给指定函数的参数。 //runthread是执行线程的函数。
Dieser Artikel wird von der chinesischen PHP-Website bereitgestellt und stellt die Verwendung von PHP zur Simulation von Multithreading-Funktionen vor.
Artikeladresse: http://www.php.cn/php-weizijiaocheng-377481.html
Lernen Sie Programmieren auf der chinesischen PHP-Website www.php.cn
Das obige ist der detaillierte Inhalt vonWie implementiert die Single-Thread-Programmiersprache PHP Multi-Thread-Operationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!