centos7.4下php7.25多线程pthreads安装及demo
首页->学习资料->其它->开发环境搭建 关键词: 发布时间:2018-08-04 19:10:19 浏览次数:3207

php7编译安装时记得开启--enable-maintainer-zts


下载pthread源码:

https://github.com/krakjoe/pthreads

编译安装


由于在linux下php是以fpm-fcgi模式运行的,此种模式下不支持pthreads,会报错误:

<b>Fatal error</b>:  The fpm-fcgi SAPI is not supported by pthreads in <b>Unknown</b> on line <b>0</b><br />


解决办法:找到php.ini然后复制一份,名为php-cli.ini:

-rw-r--r--   1 root root  70214 8月   5 02:46 php-cli.ini

-rw-r--r--   1 root root  70215 8月   5 01:56 php.ini

这两个文件的差别在于php.ini中不要开启extesion=pthreads,而在php-cli.ini中开启此项;

这样php-fpm运行时生效的是php.ini,而以cli模式运行pthreads相关程序时,起作用的是php-cli.ini文件


示例(要在cli模式下运行,也就是像dos黑窗口那种命令行下运行,也可以在一个文件xx.php中用exce命令来执行下的demo.php):

直接在浏览器中运行demo.php是会报错的,会报找不到pthread类,因为浏览器中运行请求的的是php-fpm,他起作用的是php.ini,这种模式不支持pthreads,而且我们在php.ini中也没有开启pthreads,所以报错;而以cli模式运行时,php会自动读取php-cli.ini中的配置,这里面有开启pthreads所有程序可以正常运行;


demo.php

<?php

/**
 * 用pthreads写的多线程demo,要在cli模式下运行
 * Class Request
 */
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);
    }
}
echo time().'<br/>';
$chG = new Request("http://www.hu-rong.com");
$chB = new Request("http://www.baidu.com");
$chG ->start();
$chB ->start();
$chG->join();
$chB->join();

echo $gl = $chG->response;
echo $bd = $chB->response;
echo time();


赞:(0)
踩:(0)
相关文章
windows下使用MongoDB Compass Com
Oracle VM VirtualBox中设置共享文
linux安装openvpn并保存密码
deepin v20深度系统安装docker及do
域名在阿里云服务器换成腾讯云后备
windows下安装VirtualBox增强工具
国内访问github慢或打不开的解决方
linux下安装phpstorm2018及激活码
vmware中虚拟机上不了网及共享文件
linux版phpstorm2020.3.3及激活码
热门文章
win7中将文件拷贝到虚拟机linux下
phpexcel设置行高及列宽,背景颜色,
rabbitmq无法启动
intellij idea不显示git push按钮
php7中使用mongodb的aggregate进行
centos7.4 64位下swoole安装及配置
laravel页面静态化的方法
navicate连接mycat报1184错误
单点登录sso原理及php实现方式及de
devops-jenkins容器为pending状态
好评文章
phpexcel设置行高及列宽,背景颜色,
php7中使用mongodb的aggregate进行
intellij idea打开文件所在文件夹
windows下使用MongoDB Compass Com
win7中将文件拷贝到虚拟机linux下
laravel 中悲观锁 & 乐观锁的使用
单点登录sso原理及php实现方式及de
navicate连接mycat报1184错误
rabbitmq无法启动
laravel整合dingo/api方法步骤:jwt
标签
rabbitmq mysql备份 elasticsearch golang swoole
我的项目
【github】www.github.com/hurong241
【码云】gitee.com/hu_rong/projects
【docker hub】hub.docker.com/repositories/hurong241
【packagist】packagist.org/users/hurong241/packages
站点信息
建站时间:2011年
文章数:607篇
浏览数:933078
粤ICP备18028092号-1  微信:hurong241