PHP 默许并不支撑多线程,要运用多线程须要装置 pthread 扩大,而要装置 pthread 扩大,必需运用 --enable-maintainer-zts 参数从新编译 PHP,这个参数是指定编译 PHP 时运用线程平安体式格局。
PHP 完成
PHP 完成的线程平安主如果运用 TSRM 机制对 全局变量和静态变量进行了断绝,将全局变量和静态变量 给每一个线程都复制了一份,各线程运用的都是主线程的一个备份,从而防止了变量争执,也就不会涌现线程平安问题。
PHP 对多线程的封装保证了线程平安,程序员不必斟酌对全局变量加种种锁来防止读写争执了,同时也减少了失足的时机,写出的代码越发平安。
同时 PHP 开启线程平安选项后,运用 TSRM 机制分派和运用变量时也会有分外的消耗,所以在不须要多线程的 PHP 环境中,运用 PHP 的 ZTS (非线程平安) 版本就好。
类和要领
PHP 将线程 封装成了 Thread 类,线程的建立经由过程实例化一个线程对象来完成,因为类的封装性,变量的运用只能经由过程组织函数传入,而线程运算效果也须要经由过程类变量传出。
实例代码:
下面是一个线程类,用来要求某一接口。接下来依据它写两个多线程的运用实例:
class Request extends Thread { public $url; public $response; public function __construct($url) { $this->url = $url; } public function run() { $this->response = file_get_contents($this->url); } }
引荐教程:PHP视频教程
以上就是php有多线程吗的细致内容,更多请关注ki4网别的相干文章!