php pthread安装编译,php 多线程扩展 pthreads 安装 及 使用

news/2024/12/2 7:08:45/

1、扩展的编译安装php(Linux),编辑参数 --enable-maintainer-zts 是必选项:

2、下载 php7:

http://tw2.php.net/get/php-7.1.2.tar.gz/from/a/mirrorduoxc

3、解压并编译php

tar -zxf php-7.1.2.tar.gz

cd php-7.1.2

./configure --prefix=/usr/local/php712 --with-config-file-path=/usr/local/php712/etc --with-config-file-scan-dir=/usr/local/php712/etc/php.d --with-mcrypt=/usr/include --enable-mysqlnd --with-mysqli --with-pdo-mysql --enable-fpm --with-gd --with-iconv --with-zlib --enable-xml --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --enable-session --with-curl --with-jpeg-dir --enable-sqlite-utf8 --enable-sysvmsg --enable-sysvshm --enable-wddx --with-xsl --enable-opcache --enable-maintainer-zts

sudo make -j8 && sudo make install

4、php编译完之后开始编译安装 pthreads扩展

5、下载pthreads扩展

https://github.com/krakjoe/pthreads

6、解压并安装

tar -zxf pthreads-3.1.6.tgz

cd pthreads-3.1.6

./configure --with-php-config=/usr/local/php712/bin/php-config

sudo make -j8 && sudo make install

7、配置php.ini

sudo vim /usr/local/php712/etc/php.ini

在 php.ini 最后添加:

[pthreads]

extension=pthreads.so

8、测试pthreads扩展

Thread.php :

Class Thread {

public $hooks = array();

public $args = array();

public function thread() {

}

public function addthread($func) {

$args = array_slice(func_get_args(), 1);

$this->hooks[] = $func;

$this->args[] = $args;

return true;

}

public function runthread() {

if(isset($_GET['flag'])) {

$flag = intval($_GET['flag']);

}

if($flag || $flag === 0) {

call_user_func_array($this->hooks[$flag], $this->args[$flag]);

} else {

for($i = 0, $size = count($this->hooks); $i < $size; $i++) {

$fp=fsockopen($_SERVER['HTTP_HOST'],$_SERVER['SERVER_PORT']);

if($fp) {

$out = "GET {$_SERVER['PHP_SELF']}?flag=$i HTTP/1.1rn";

$out .= "Host: {$_SERVER['HTTP_HOST']}rn";

$out .= "Connection: Closernrn";

fputs($fp,$out);

fclose($fp);

}

}

}

}

}

test.php :

include('Thread.php');

Class AsyncOperation extends Thread {

public function __construct($arg){

$this->arg = $arg;

}

public function run(){

if($this->arg){

printf("Hello %s\n", $this->arg);

}

}

}

$thread = new AsyncOperation("World");

if($thread->start()){

$thread->join();

}


http://www.ppmy.cn/news/614460.html

相关文章

MAML-Tracker: 目标跟踪分析:CVPR 2020(Oral)

MAML-Tracker: 目标跟踪分析&#xff1a;CVPR 2020(Oral) Tracking by Instance Detection: A Meta-Learning Approach 论文链接&#xff1a;https://arxiv.org/abs/2004.00830 摘要 把跟踪问题看作一类特殊的目标检测问题&#xff0c;称之为实例检测。通过适当的初始化&am…

02Lua入门

前言&#xff1a;语言学起来其实相似点很多&#xff0c;简单整理的知识点目录&#xff1a; 1.使用控制台 2.Lua基础 3.变量 4.运算符 5.控制结构 1.使用控制台 Lua脚本是包含一系列Lua命令的简单脚本&#xff08;扩展名为.lua的文本文件&#xff09;。Lua不关注格式&#xff0c…

php无表单上传文件,php – 来自表单的WP邮件附件,无文件管理器上传文件

从表单通过wp_mail函数我正在尝试发送带附件的电子邮件,而不将文件上传到文件管理器.我收到附件的电子邮件.但附件名称不正确,没有文件类型.请帮忙解决这个问题.这是HTML表单有我的PHP代码if (isset($_POST[Submit])) {$attachments $_FILES[Attached][tmp_name];$recipients …

目标跟踪算法

目标跟踪算法 一&#xff0e;互相关运算 给你一张我的正脸照&#xff08;没有经过美颜处理的&#xff09;&#xff0c;你该如何在人群中找到我呢&#xff1f;一种最直观的方案就是&#xff1a;“谁长得最像就是谁”。但是对于计算机来说&#xff0c;如何衡量“长得像”&#…

Spring Boot中的@RequestMapping注解,如何使用

Spring Boot中的RequestMapping注解 介绍 Spring Boot是一个流行的Java框架&#xff0c;它提供了许多方便的注解和工具&#xff0c;使得Web应用程序的开发变得更加容易。其中&#xff0c;RequestMapping注解是Spring Boot中最常用的注解之一&#xff0c;它可以帮助开发者定义…

JS继承的实现方式

原型链继承&#xff1a;//原型链继承&#xff1a;把父类的私有公有的属性和方法&#xff0c;都作为子类公有的属性&#xff1b;//核心&#xff1a;不是把父类私有公有的属性克隆一份一模一样的给子类的公有吧&#xff1b;他是通过__proto__建立和子类之间的原型链&#xff0c;当…

单目测距算法

单目测距算法 相似三角形 用相似三角形计算物体或者目标到相机的距离&#xff0c;将使用相似三角形来计算相机到一个已知的物体或者目标的距离。 假设有一个宽度为 W 的目标或者物体。然后将这个目标放在距离的相机为 D 的位置。用相机对物体进行拍照并且测量物体的像素宽度…

LeetCode-198. 打家劫舍

题目描述 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定一个代表每个房屋存…