php多线程如何实现

php最初设计的时候是单线程的,因为这样不用设计简单,不需要考虑线程之间的切换开销。


然而有些时候我们还是想要在php中实现多线程。那么php是如何实现多线程的呢?


php最方便的一点就是,他的许多功能都可以通过扩展来实现。php只要安装pthread这个扩展,就可以实现多线程了。


下面简单举个例子


image.png


通过继承tread线程类,实现run方法,然后在调用的时候执行start方法,就可以调用多线程了。


$ch1 = new Request("www.80shihua.com"); $ch2 = new Request("www.80shihua.com"); $ch1 ->start(); $ch2 ->start(); $ch1->join(); $ch2->join(); $rs1 = $ch1->response; $rs2 = $ch2->response;


通过这样的方式,我们就可以并发执行请求,现在大部分爬虫也基本是这样来抓取的,因为这样的效率更高。


要使用多线程一定要安装pthread扩展,否则会提示thread不存在。