php多线程抓取网页(推荐手册:php完全自学手册(pthreads)(组图))
优采云 发布时间: 2021-12-04 08:04php多线程抓取网页(推荐手册:php完全自学手册(pthreads)(组图))
php中可以实现多线程,是利用老的exec函数通过异步处理实现多线程的一种方式。exec 函数本身是一个执行外部程序的php 函数。下面我们来详细看看php多线程的实现。
推荐手册:php完全自学手册
我们先来看一个例子
当执行上述操作时,甚至在耗时处理结束之前显示处理完成。
exec("php static_massive.php > /dev/null &");
由于 ">/dev/null&" 返回的值缺失,我们不会等待响应。
因此,处理完成指示比耗时处理更快。
但是,这种方法不知道耗时的过程何时结束。
不要忘记考虑日志的执行、登录DB等方式将执行结果交付给用户。
多线程方法(pthreads)
最后介绍了PHP扩展模块pthreads的使用方法。
它可以比使用exec的上述方法更简单。
①配置环境并安装php
请使用 vagrant 准备自己喜欢的环境。
php需要使用线程安全的版本,是多线程和安全的实现。
从官方网站下载线程安全版本的 PHP。
访问下面的内容并从图片中的红色框中下载。
此外,对于线程安全安装,您需要使用配置选项指定 -enable-maintainer-zts。
./configure --enable-maintainer-zts
根据需要,您还可以安装 Apache 和 mysql 的选项。
使用以下命令确认 php 版本。
php -v
②pthreads的安装
让我们下载zip格式。
解压zip,移动到解压文件,执行phpize。
如果您在 PHP 模块列表上运行 pthreads,您可以执行以下操作。
php -m
根据环境的不同,此块的设置会有所不同。可以用环境名+pthreads等方式搜索信息。
③尝试使用多线程
例子如下
因为 sleep(5) 被调用两次,需要10秒,但实际上会是5秒。