首页 技术教程 实用代码 注册破解 正则表达式 网址导航 电子书籍

利用php curl实现多进程下载文件类

批量下载文件一般使用循环的方式,逐一执行下载。但在带宽与服务器性能允许的情况下,使用多进程进行下载可以大大提高下载的效率。本文介绍php利用curl的多进程请求方法,实现多进程同时下载文件。 原理:使用curl的批处理方法,开启多进程,实现批量下载文件。 主要方法: curl_multi_init 返回一个新cURL批处理句柄 curl_multi_add_handle 向curl批处理会话中添加单独的curl句柄 curl_multi_exec 运行当前 cURL 句柄的子连接 curl_multi_getcontent 如果设置了CURLOPT_RETURNTRANSFER,则返回获取的输出的文本流 curl_multi_remove_handle 移除curl批处理句柄资源中的某个句柄资源 cu...
类别:网页编程 - PHP技术    查看:196    更新:2023-07-17

PHP CLI模式下的多进程应用

PHP在很多时候不适合做常驻的SHELl进程, 他没有专门的gc例程, 也没有有效的内存管理途径. 所以如果用PHP做常驻SHELL, 你会经常被内存耗尽导致abort而unhappy. 而且, 如果输入数据非法, 而脚本没有检测, 导致abort, 也会让你很不开心. 那? 怎么办呢? 呵呵, 别着急, 多进程来帮您! 那,这是为什么呢? 优点: 1. 使用多进程, 子进程结束以后, 内核会负责回收资源 2. 使用多进程,子进程异常退出不会导致整个进程Thread退出. 父进程还有机会重建流程. 3. 一个常驻主进程, 只负责任务分发, 逻辑更清楚. Then, 怎么做呢? 接下来, 我们使用PHP提供的POSIX和Pcntl系列函数, 来实现一个PHP命令...
类别:网页编程 - PHP技术    查看:128    更新:2014-05-19

PHP中的(伪)多线程与多进程

已经因为没怎么需要,所以没有查这个的资料。最近有一个项目却是需要这样子的功能。      查看了PHP的手册和他人的例子,了解到基本的两种方法: (伪)多线程:借助外力      利用WEB服务器本身的多线程来处理,从WEB服务器多次调用我们需要实现多线程的程序。       引用:我们知道PHP本身是不支持多线程的, 但是我们的WEB服务器是支持多线程的. 也就是说可以同时让多人一起访问. 这也是我在PHP中实现多线程的基础. 假设我们现在运行的是a.php这个文件. 但是我在程序中又请求WEB服务器运行另一个b.php&...
类别:网页编程 - PHP技术    查看:118    更新:2014-05-19

Java的多进程运行模式分析

一般我们在java中运行其它类中的方法时,无论是静态调用,还是动态调用,都是在当前的进程中执行的,也就是说,只有一个java虚拟机实例在运行。而有的时候,我们需要通过java代码启动多个java子进程。这样做虽然占用了一些系统资源,但会使程序更加稳定,因为新启动的程序是在不同的虚拟机进程中运行的,如果有一个进程发生异常,并不影响其它的子进程。在Java中我们可以使用两种方法来实现这种要求。最简单的方法就是通过Runtime中的exec方法执行java classname。如果执行成功,这个方法返回一个Process对象,如果执行失败,将抛出一个IOException错误。下面让我们来看一个简单的例子。// Test1.java文件import java.io.*; public class ...
类别:程序开发 - JAVA    查看:107    更新:2014-05-15

多进程解决PHP做常驻SHELL被内存耗尽导致abort

PHP在很多时候不适合做常驻的SHELl进程, 他没有专门的gc例程, 也没有有效的内存管理途径. 所以如果用PHP做常驻SHELL, 你会经常被内存耗尽导致abort而unhappy.而且, 如果输入数据非法, 而脚本没有检测, 导致abort, 也会让你很不开心.那? 怎么办呢?呵呵, 别着急, 多进程来帮您! 那,这是为什么呢?优点:1. 使用多进程, 子进程结束以后, 内核会负责回收资源2. 使用多进程,子进程异常退出不会导致整个进程Thread退出. 父进程还有机会重建流程.3. 一个常驻主进程, 只负责任务分发, 逻辑更清楚.Then, 怎么做呢? 接下来, 我们使用PHP提供的POSIX和Pcntl系列函数, 来实现一个PHP命令解析器, 主进程负责接受用户输入, 然后fork...
类别:网页编程 - PHP技术    查看:104    更新:2014-05-04