您的位置  > 互联网

PHP多线程类及用法(,)实例分析了

更新时间:2014-12-03 09:31:48 投稿日期:

本文主要介绍PHP多线程类及其用法,以实例分析多线程类的具体实现方式和应用技巧,并结合下载远程图片的示例进行深入分析

本文说明了 PHP 多线程类及其用法。与您分享以供参考。具体分析如下:

一般来说,PHP多线程可以通过Web服务器实现,当然,对多线程有深刻理解的人都知道,通过Web服务器进行多线程只能模仿多线程的一些效果,而不是真正意义上的多线程

无论哪种方式,它仍然满足我们的一些需求,我们仍然可以在类似多线程的功能方面使用这个类,代码如下:

复制代码 代码如下:

/**

* @title:PHP多线程类()。

* @:1.0

* PHP多线程应用示例:

* '.class.php';

* $ = 新 ();

* $->('','a');

* $->('','b');

* $->('','c');

* $->();

* ($info) {

* $log = '日志/' 。() .“.log”;

* $txt = $info .“rnrn”。'设置在 ' .日期('h:i:s', time()) 。()() .“rn”;

* $fp = fopen($log, 'w');

* ($fp, $txt);

* ($fp);

* }

*/

类 {

var $hooks = 数组();

var $args = 数组();

() {

($func)

$args = ((), 1);

$this->hooks[] = $func;

$this->args[] = $args;

真;

()

if(isset($_GET['标志']))

$flag = ($_GET['flag']);

if($flag || $flag === 0)

($this->钩子[$flag],$this->args[$flag]);

for($i = 0, $size = count($this->钩子); $i < $size; $i++)

$fp=($[''],$['']);

如果($fp)

$out = “GET {$['']}?flag=$i HTTP/1.1rn”;

$out .= “主机: {$['']}rn”;

$out .= “: ”;

fputs($fp,$out);

($fp);

要使用它,代码如下:

复制代码 代码如下:

$ = 新 ();

$->('func1','信息1');

$->('func2','信息2');

$->('func3','信息3');

$->();

描述:

() 是添加线程的函数,第一个参数是函数名,后面的参数(可选)是传递给指定函数的参数

() 是执行线程的函数

PHP 实例:使用 curl 下载多线程图片

其实PHP用curl来实现一个多线程类,有了这个类,我们也可以用这个类来执行多线程任务,代码如下:

复制代码 代码如下:

类 {

$=数组();

$=数组(

'ER' = > 1, // 结果返回给变量

'' => 0, //是否需要返回HTTP头

'' => 0,//是否需要退货

'ON' => 0, //自动跟踪

'' = > 6//超时。

);

($=30){

(美元);

/*

* 设置网址

* @list阵列

*/

($list=array()){

$this->=$list;

/*

* 设置参数

* @ 数组

*/

($){

$this->=$+$this->;

/*

*执行

* @ 数组

*/

(){

$mh=();

($this-> as $i=>$url){

$conn[$i]=($url);

($this-> as $key => $val){

($conn[$i],('/({1,})/ie','$0',$key),$val);

e($mh,$conn[$i]);

$=假;

做{

$mrc=($mh,$);

}while($mrc == 形式);

while($ 和 $mrc == ){

if(($mh) != -1){

做{

$mrc=($mh,$);

}while($mrc == 形式);

$res=数组();

($this-> as $i => $url){

$res[$i]=t($conn[$i]);

($conn[$i]);

ndle($mh,$conn[$i]);//发布资源

($mh);

$res;

PHP使用多线程下载类示例下载远程镜像,代码如下:

复制代码 代码如下:

$=新 ();

$->(array('','',''));

$a=$->();

$i=1;

($a 为 $v){

$=$i.'.gif';

$fp 2=@fopen($,'a');

($fp 2,$v);

($fp 2);

$i++;

我希望本文中描述的内容对您的PHP编程有所帮助。