ホームページ > バックエンド開発 > PHPチュートリアル > PHP はマルチスレッドを実装します。PHP マルチスレッド_PHP チュートリアル

PHP はマルチスレッドを実装します。PHP マルチスレッド_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:12:00
オリジナル
993 人が閲覧しました

phpはマルチスレッドを実現し、phpマルチスレッド

はphpのSocketメソッドを通じてphpプログラムのマルチスレッドを実現します。 PHP 自体はマルチスレッドをサポートしていないので、PHP でマルチスレッドを実装するにはどうすればよいでしょうか?考えてみれば、WEB サーバー自体がマルチスレッドをサポートしています。各訪問者は WEB ページにアクセスするときに新しいスレッドを呼び出します。これにより、WEB サーバー独自のスレッドを使用して、PHP がマルチスレッドをサポートしていないという問題を解決できます。

以下は、fsockopen() を通じてソケット接続を確立し、fputs() を使用してメッセージを送信する PHP マルチスレッド クラス コードです:
$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);



上記のコードは単なるスレッドの操作プロセスです。このような操作をさらにいくつか実行するのがマルチスレッドです。現在の PHP のいわゆるマルチスレッド プログラムはすべてこの方式に基づいています。

完全なスレッド クラス コードを以下に示します。
/**
@title:PHP マルチスレッド クラス (スレッド)
@version:1.0
@author:axgle
*/
クラススレッド {
var $count;
関数スレッド($count=1) {

$this->count=$count;

関数_submit() {
for($i=1;$i<=$this->count;$i++) $this->_thread();
return true
}


function _thread() {
$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);
}

function exec($func) {
isset($_GET[' flag'])?call_user_func($func):$this->_submit();
}


}

//アプリケーション例:
$th=new thread(10);//10 スレッド
$ th ->exec('demo');// カスタム関数を実行します

function Demon() {
fopen('data/'.microtime(),'w');

?>
http://codechina.spaces.live.com/blog/cns!bca6db10a924c24!575.entry

http://www.bkjia.com/PHPjc/924848.html

www.bkjia.com本当http://www.bkjia.com/PHPjc/924848.html技術記事 PHP はマルチスレッドを実装します。PHP マルチスレッドは、PHP の Socket メソッドを通じて PHP プログラムのマルチスレッドを実装します。 PHP 自体はマルチスレッドをサポートしていないので、PHP でマルチスレッドを実装するにはどうすればよいでしょうか?考えてもいいよ...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート