【PHP 多进程和多线程的优缺点】教程文章相关的互联网学习教程文章

php多线程实现多进程跨平台的一例代码

define('DIR_PHP_EXEC', 'php');define('DIR_MAIN_EXEC', __FILE__);define('DIR_TMP', '/tmp');require_once('my_process.php');class pp extends my_process_base {public function run($param = null) { for ($i = 0; $i echo "111 $param\n"; sleep(1); }}}init_my_process();$obj = $GLOBALS['gal_obj_process_m'];if ($obj->is_main()) {$obj->run_task('pp', 'a');$obj->run_task('pp', 'b');...

php多线程类的代码分享

本文介绍下,有关php中实现多线程的一个类,有需要的朋友参考下。如何通过WEB服务器实现PHP的多线程功能呢? 在php编程中,通过WEB服务器实现的多线程只能模仿多线程的一些效果,并不是真正意义上的多线程。 在需要类似多线程的功能时,可以参考下下面的这个类。 代码:addthread('action_log','a');* $thread->addthread('action_log','b');* $thread->addthread('action_log','c');* $thread->runthread();* * function act...

理解php多线程的妙用

本文介绍下,在linux环境下,php多线程的妙用,有需要的朋友参考下。本节分享的php多线程的知识,需要用到php的pcntl_fork函数,此函数依赖操作系统fork的实现,以上内容仅适用于linux/unix系统。 来看下pcntl_fork函数的用法:通过pcntl_fork创建一个子进程。 如果返回值是-1的话,那么说明子进程创建失败。 创建成功的进程id会返回给父进程,0返回给子进程。 习惯这样写:如果父进程希望知道子进程正常退出的话,可以加上前面的pc...

php多线程抓取网页的代码分享

本文介绍下,用php实现多线程抓取网页的代码,有需要的朋友参考下。在php中,可以使用Curl完成各种传送文件的操作,比如模拟浏览器发送GET,POST请求等。 php语言本身并不支持多线程,所以开发爬虫程序效率并不高,因此借助Curl Multi Functions 来实现并发多线程的访问多个url地址。 有关curl的基础内容,可以参考如下的文章: php curl应用实例分析 php curl用法的实例代码 php curl 学习总结 本节介绍使用 Curl Multi Functions...

php多线程之管道通信的例子

本文介绍下,在php中有关多线程编程之管道通信的例子,有需要的朋友参考下。php多线程实现管道通信,代码如下:fifoPath = $fifoPath;}// 写管道函数开始function open_write(){$this->w_pipe = fopen($this->fifoPath, 'w');if ($this->w_pipe == NULL) {error("open pipe {$this->fifoPath} for write error.");return false;}return true;}function write($data){return fwrite($this->w_pipe, $data);}function write_all($da...

php多线程下载远程多个文件的函数

本文介绍下,用php实现的一个可以多线程下载远程多个文件的函数,有需要的朋友参考下。以下代码,实现:多线程下载远程多个文件,如下:$v) { if (!empty($v) && preg_match("~^http~i", $v)) { $nurl[$k] = trim(str_replace(' ', "%20", $v)); $curl[$k] = curl_init($nurl[$k]); curl_setopt($curl[$k], CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); curl_setopt($curl[$k], CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl[$k], C...

php与shell实现多线程的简单例子

<?php//for循环for ($i = 0; $i < 10; $i++) { echo $i; sleep(5);}接下来,就要shell上场了,调用php文件:sleep.php,代码如下:#!/bin/bash#edit by bbs.it-home.orgfor i in 1 2 3 4 5do /usr/bin/php -r -q /data/website/sleep.php &done注意: 以上代码的关键点在于,要在请求php代码的行尾加一个&符号,否则不能进行多线程的,&表示讲服务推送到后台执行。 因此,在shell的每次的循环中不必等php的代码全部执行完在请...

PHP异步执行模拟多线程的方法

<?php$fp = fsockopen(localhost,80,&$errno,&$errstr,5); if(!$fp){ echo "$errstr ($errno)\n"; }fputs($fp,"GET ./test.php\r\n"); //这个地方的路径一定要正确,刚开始的时候就弄错了fclose($fp);test.php中放置需要的代码,这样就会异步执行了。

php异步请求文件实现多线程的代码

<?php$content=;$fp = fsockopen("bbs.it-home.org", 80, $errno, $errstr, 30);if (!$fp) { echo "$errstr ($errno)\n";} else {$out = "POST /test.php?id=5".$content." HTTP/1.1\r\n";$out .= "Host:www.php100.com\r\n";$out .= "Content-Length: ". strlen($content) ."\r\n";$out .= "Connection: Close\r\n\r\n";$out .= $content; $out .= "\r\n\r\n";fwrite($fp, $out);/*//忽略执行结果while (!feof($fp...

多线程的cURL

本处是一个可以灵活的多线程的调用 cURL的。这里跟php手册 http://us2.php.com/manual/zh/function.curl-multi-select.php 中提供的样例不同,代码执行效率要高不少本处两个文件,一个是muti_curl的文件,里面包含两个class一个是运用的方法,这里是批量检查代理ip是否可用class request_setting { public $url = false; public $method = 'GET'; public $post_data = null; public $headers = null; public $optio...

PHP模拟多线程请求代码示例

下面是PHP模拟多线程请求代码示例 multi_threads_request($nodes){ $mh = curl_multi_init(); $curl_array = array(); foreach($nodes as $i => $url) { $curl_array[$i] = curl_init($url); curl_setopt($curl_array[$i], CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($mh, $curl_array[$i]); } ...

PHP多线程批量采集下载图片的实现代码

使用curl的多线程,另外curl可以设置请求时间,遇到很慢的url资源,可以果断的放弃,这样没有阻塞,另外有多线程请求,效率应该比较高 /** * curl 多线程 * @param array $array 并行网址 * @param int $timeout 超时时间 * @return mix */ public function Curl_http($array,$timeout=15){ $res = array(); $mh = curl_multi_init();//创建多个curl语柄 foreach($array as $k=>$url){...

PHPCURL多线程GET/POST类

<?php/**************************************************************** PHP CURL 多线程 GET/POST curl(array(url?get=data,url),array(,post_data));*****************************************************************/function curl($urls,$post) { $queue = curl_multi_init(); $map = array(); foreach ($urls as $key => $url) { $ch = curl_init(); curl_setopt($ch, CU...

巧妙解决PHP无法实现多线程的问题_PHP教程

有没有办法在PHP中实现多线程呢?假设你正在写一个基于多台服务器的PHP应用,理想的情况时同时向多台服务器发送请求,而不是一台接一台。可以实现吗?当有人想要实现并发功能时,他们通常会想到用fork或者spawn threads,但是当他们发现PHP不支持多线程的时候,大概会转换思路去用一些不够好的语言,比如Perl。php100推荐阅读: http://www.bkjia.com/PHPjc/445880.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/445880.htm...

php多线程上下文中安全写文件实现代码_PHP教程

代码如下:/** * @usage: used to offer safe file write operation in multiple threads context, arbitory file type * @author: Rocky Zhang * @time: Nov. 11 2009 * @demo[0]: $handler = mfopen($file, 'a+'); * mfwrite($handler, $str); */ function mfopen($file, $mode='w+') { $tempfile = generateTempfile('./tempdir', $file); preg_match('/b/i', $mode) || ($mode .= 'b'); // 'b' is recommended if (preg_match('...