最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

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

维修 admin 41浏览 0评论

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

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文件是用来被多线程调用的。

<?phpecho "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){//线程1sleep(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){//线程2echo "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 (){//线程3echo "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的多线程就配置好了。

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

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文件是用来被多线程调用的。

<?phpecho "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){//线程1sleep(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){//线程2echo "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 (){//线程3echo "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的多线程就配置好了。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论