windows环境下PHP7.4多线程设置

news2024/11/23 16:45:05

windows环境下的PHP设置多线程时有一定的难度,难点主要是PHP版本的选择,多线程扩展的选择,以及相关的设置等。

环境

  • windows 10
  • php-7.4.33-Win32-vc15-x64
  • php_parallel-1.1.4-7.4-ts-vc15-x64
  • phpstudy 8.1.1.2

为了快速的部署PHP环境,我直接使用了小皮,但是小皮并不是关键因素,只是用它快速提供了apache.本文所使用软件如下图。
在这里插入图片描述
1.下载php

php的版本一定是TS版的NTS版的不支持多线程。大家直接下载php-7.4.33-Win32-vc15-x64就可以了,其他很多版本我都试过没有成功。

php-7.4.33-Win32-vc15-x64下载

2.解压到小皮的扩展目录下

将下载的PHP解压后复制到你的小皮的解压目录下Extensions\php目录下,下图是我的解压目录,供大家参考。
在这里插入图片描述
3.下载parallel扩展

pthreads已经不再支持php7.4了,需要使用新的parallel扩展,注意parallel扩展的版本一定要和php的版本对应上,大家可以直接使用本文中提及的版本。

php_parallel-1.1.4-7.4-ts-vc15-x64.zip下载

将压缩包解压后,复制php_parallel.dll到你的php/ext目录下。

复制pthreadVC2.dllphp主程序目录下。
在这里插入图片描述
php/ext路径添加到系统路径中。
在这里插入图片描述
大家根据自己php实际的路径进行添加系统路径。

4.验证

首先重命名php-7.4.33-Win32-vc15-x64目录下的php.ini-developmentphp.ini,然后打开该文件在Dynamic Extensions 选项下添加extension=parallel,如下图。
在这里插入图片描述
添加完成后保存文件,打开小皮选择开启php.
在这里插入图片描述
重启apache重启网站。
在这里插入图片描述
在小皮的www目录下新建一个普通的a.php文件,这个php文件是用来被多线程调用的。

<?php
	echo "hello...";

example目录,并新建一个多线程调用的php文件,写入下面的代码。

<?php
header("Content-Type:text/html;charset=utf-8");
# a.php是被多线程调用的,路径根据实际书写
$r1=new \parallel\Runtime('D:\phpstudy_pro\WWW\a.php');
$r2=new \parallel\Runtime('D:\phpstudy_pro\WWW\a.php');
$a=5;
$future1=$r1->run(function ()use ($a){//线程1
    sleep(1);
    echo "this is thread1 start\n\r";
    $a++;
    echo "thread1 a is $a\n\r";
    sleep(5);
    echo "this is thread1 end\n\r";
    return 1;
});

$future2=$r2->run(function ($p1){//线程2
    echo "this is thread2 start\n\r";
    sleep(5);
    echo "thread2 a is $p1\n\r";
    echo "this is thread2 end\n\r";
    return 2;
},[$a]);//外部变量也可以通过第二个参数传入线程

$future3=$r2->run(function (){//线程3
    echo "this is thread3 start\n\r";
    sleep(5);
    echo "this is thread3 end\n\r";
    return 3;
});
echo "主线程开始\n\r";
echo "future1的值是:".$future1->value()."\n\r";
echo "future2的值是:".$future2->value()."\n\r";
echo "future3的值是:".$future3->value()."\n\r";

进入php主程序目录,打开一个命令窗口,运行以下代码(大家根据自己实际情况修改)。

php D:\phpstudy_pro\WWW\examples\test.php

在这里插入图片描述如果出现下图的输出说明你的windows下的php7.4的多线程就配置好了。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1185153.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

css控制卡片内部的左右布局

先放效果图 纯css样式 可以根据需求进行更改 <template> <!-- 卡片盒子 --><div class"card_box "><el-card class"box-card w400" v-for"(item,index) in cardList" :key"index"><div slot"heade…

<sa8650>qcxserver 之 QCarCam 6.X API介绍 (第二部分)

@[TOC](<sa8650>qcxserver 之 QCarCam 6.X API介绍 (第二部分)) 2.6 帧信息定 帧信息定义包括缓冲区列表ID、缓冲区索引、帧序列号、每个批处理帧的时间戳、隔行扫描字段类型和标志。 2.6.1 QCarCamHWTimestamp_t 硬件时间戳定义 2.6.2 QCarCamBatchFramesInfo_t 2.6.3…

数字通信和fpga概述——杜勇版本学习笔记

1数字通信处理流程 脉冲调制是每个数字通信系统中间必不可少的环节&#xff0c;通常是使用升余弦滚降滤波器来实现。 超外差接收机原理是利用本地产生的振荡波与输入信号混频&#xff0c;将输入信号频率变换为某个预先确定的频率的方法。超外差原理最早是由E.H.阿姆斯特朗于1…

Windows配置JAVA_HOME但是未生效问题

文章目录 前言问题定位解决方式java_home 修改成 1.6 再试试效果 前言 之前用的都是jdk 1.8&#xff0c;但最近需要修改一个老项目&#xff0c;老项目使用的是1.6。修改java_home为1.6的路径后&#xff0c;在cmd中输入java -version发现并未更改。 问题定位 之前装过简化版的…

python中circle函数的用法

python中circle函数的用法 circle函数简介语法说明代码说明 circle函数简介 Python中的circle函数用于绘制圆形&#xff0c;是Python中非常基础 和重要的函数之一 语法 turtle.circle(radius,extentNone,stepsNone)说明 第一个参数- 半径是 radius - radius 可以是负数 - r…

真正解决jellyfin硬解码转码

前段时间入手一个DS423集成显卡UHD600&#xff0c;搭了一个jellyfin&#xff0c;发现网上关于硬解码的教程基本都存在问题&#xff0c;没有真正解决我的硬解码问题。经过一系列分析修改&#xff0c;最终实现硬解码。先贴效果图&#xff1a; 下载安装jellyfin这里就不叙述&#…

猫罐头什么牌子好?精选5款口碑好的猫主食罐头推荐!

亲爱的猫咪朋友们&#xff0c;你们是否还在为如何挑选适合猫咪的猫主食罐头而烦恼呢&#xff1f;猫主食罐头不仅仅是一种美味的食物&#xff0c;更是对维护猫咪健康有益的重要食品。猫罐头什么牌子好&#xff1f;作为在宠物店工作了7年的店长&#xff0c;这些年来店里的猫猫吃过…

【MongoDB】索引 – 文本索引(指定语言)

一、语言列表 语言名称 代码 danish da dutch nl english en finnish fi french fr german de hungarian hu italian it norwegian nb portuguese pt romanian ro russian ru spanish es swedish sv turkish tr 二、指定默认语言 创建文本索…

零基础学网络安全要怎么学?五分钟看懂

网络安全因何而重要&#xff1f; 网络安全是指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然或恶意原因而遭受破坏、更改、泄露&#xff0c;系统连续可靠正常地运行&#xff0c;网络服务不中断。 截至2022年6月,我国网民规模为10.51亿&#xff0c;互联网…

伐木猪小游戏

欢迎来到程序小院 伐木猪 玩法&#xff1a;控制小猪点击屏幕左右砍树&#xff0c;不能碰到树枝&#xff0c;考验手速与眼力&#xff0c;记录分数&#xff0c;快去挑战伐木吧^^。开始游戏https://www.ormcc.com/play/gameStart/199 html <script type"text/javascript…

Centos7开放及查看端口

1、开放端口 firewall-cmd --zonepublic --add-port8888/tcp --permanent # 开放8888端口 firewall-cmd --zonepublic --remove-port8888/tcp --permanent #关闭8888端口 firewall-cmd --reload # 配置立即生效 2、查看防火墙所有开放的端口 firewall-cmd --zonepubl…

5 Tensorflow图像识别(下)模型构建

上一篇&#xff1a;4 Tensorflow图像识别模型——数据预处理-CSDN博客 1、数据集标签 上一篇介绍了图像识别的数据预处理&#xff0c;下面是完整的代码&#xff1a; import os import tensorflow as tf# 获取训练集和验证集目录 train_dir os.path.join(cats_and_dogs_filter…

有关python库

官方库 #1、导入某模块 import os #2、导入OS模块中的system方法 from os import system #3、导入某模块中的孙子模块中的xx方法&#xff0c;并重命名 from module.xx.xx import xx as rename #4、导入OS中的所有模块 #不用进行OS.method(),直接method&#xff08;&#xff0…

ST 任意内核 移植freertos系统

FREERTOS系统移植&#xff0c;先下载系统文件并解压如下 keil5移植后效果如图 注意事项 注意内核类型&#xff0c;ST的f1为M3,F4为m4&#xff0c;h7&#xff0c;f7为m7 再include包含.h路径即可 任务函数一定要写到while&#xff08;1&#xff09;否则无法运行 void lvgl_demo…

AVL树 c语言版本 插入部分

目录 引入平衡树 为什么要变平衡 怎么判断是否需要变平衡 怎么变平衡 LL型失衡 RR型失衡 LR型失衡 RL型失衡 补充 左旋补充 右旋补充 Code 开辟一个新节点 初始化 获取树的高度 左旋函数 更新树高 树高的求法 右旋转函数 插入 InsertNode() 更新树高 getbala…

ZZ308 物联网应用与服务赛题第G套

2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 &#xff08;G卷&#xff09; 赛位号&#xff1a;______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等&#xff1b; 2.竞赛任务中所使用…

星岛专栏|从Web3发展看金融与科技的融合之道

11月起&#xff0c;欧科云链与香港主流媒体星岛集团开设Web3.0安全技术专栏&#xff0c;该专栏主要面向香港从业者、交易机构、监管机构输出专业性的安全合规建议&#xff0c;旨在促进香港Web3.0行业向安全与合规发展。 出品&#xff5c;欧科云链研究院 自2016年首届香港金融…

P02项目诊断报警组件(学习操作日志记录、单元测试开发)

★ P02项目诊断报警组件 诊断报警组件的主要功能有&#xff1a; 接收、记录硬件设备上报的报警信息。从预先设定的错误码对照表中找到对应的声光报警和蜂鸣器报警策略&#xff0c;结合当前的报警情况对设备下发报警指示。将报警消息发送到消息队列&#xff0c;由其它组件发送…

Linux常用命令及项目部署

目录 Linux介绍 Linux环境 下载xshell 常见的Linux命令 搭建Java部署环境 1.jdk 2.tomcat 3.mysql 进行部署 Linux介绍 Linux操作系统是和Windows并列的关系&#xff0c;Linux主要通过命令行进行操作的。 Linux环境 1.使用虚拟机&#xff0c;电脑上安装虚拟机软件 …

快来看看如何拿下7+干湿结合生信思路。赶紧拿起笔记本

今天给同学们分享一篇生信文章“CENPF/CDK1 signaling pathway enhances the progression of adrenocortical carcinoma by regulating the G2/M-phase cell cycle”&#xff0c;这篇文章发表在J Transl Med期刊上&#xff0c;影响因子为7.4。 结果解读&#xff1a; CENPF在AC…