windows下安裝php真正的多執行緒擴充套件pthreads教程
注意事項
php5.3或以上,且為執行緒安全版本。apache和php使用的編譯器必須一致。
通過phpinfo()檢視Thread Safety為enabled則為執行緒安全版。
通過phpinfo()檢視Compiler項可以知道使用的編譯器。本人的為:MSVC9 (Visual C++ 2008)。
本人使用環境
32位windows xp sp3,wampserver2.2d(php5.3.10-vc9 + apache2.2.21-vc9)。
一、下載pthreads擴充套件
下載地址:http://windows.php.net/downloads/pecl/releases/pthreads
根據本人環境,我下載的是pthreads-2.0.8-5.3-ts-vc9-x86。
2.0.8代表pthreads的版本。
5.3代表php的版本。
ts表示php要執行緒安全版本的。
vc9表示php要Visual C++ 2008編譯器編譯的。
x86則表示32位的
二、安裝pthreads擴充套件
複製php_pthreads.dll 到目錄 bin\php\ext\ 下面。(本人路徑D:\wamp\bin\php\php5.3.10\ext)
複製pthreadVC2.dll 到目錄 bin\php\ 下面。(本人路徑D:\wamp\bin\php\php5.3.10)
複製pthreadVC2.dll 到目錄 C:\windows\system32 下面。
開啟php配置檔案php.ini。在後面加上extension=php_pthreads.dll
提示!Windows系統需要將 pthreadVC2.dll 所在路徑加入到 PATH 環境變數中。我的電腦--->滑鼠右鍵--->屬性--->高階--->環境變數--->系統變數--->找到名稱為Path的--->編輯--->在變數值最後面加上pthreadVC2.dll的完整路徑(本人的為C:\WINDOWS\system32\pthreadVC2.dll)。
三、測試pthreads擴充套件
- classAsyncOperationextends \Thread {
- publicfunction __construct($arg){
- $this->arg = $arg;
- }
- publicfunction run(){
- if($this->arg){
- printf("Hello %s\n", $this->arg);
- }
- }
- }
- $thread =newAsyncOperation("World");
- if($thread->start())
- $thread->join();
- ?>
附上一個Thinkphp3.2.2簡單例子
- <?php
- namespaceHome\Controller;
- class test extends \Thread {
- public $url;
- public $result;
- publicfunction __construct($url){
- $this->url = $url;
- }
- publicfunction run(){
- if($this->url){
- $this->result = model_http_curl_get($this->url);
- }
- }
- }
- function model_http_curl_get($url){
- $curl = curl_init();
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
- curl_setopt($curl, CURLOPT_TIMEOUT,5);
- curl_setopt($curl, CURLOPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)');
- $result = curl_exec($curl);
- curl_close($curl);
- return $result;
- }
- for($i =0; $i <10; $i++){
- $urls[]='http://www.baidu.com/s?wd='. rand(10000,20000);
- }
- /* 多執行緒速度測試 */
- $t = microtime(true);
- foreach($urls as $key=>$url){
- $workers[$key]=new test($url);
- $workers[$key]->start();
- }
- foreach($workers as $key=>$worker){
- while($workers[$key]->isRunning()){
- usleep(100);
- }
- if($workers[$key]->join()){
- dump($workers[$key]->result);
- }
- }
- $e = microtime(true);
- echo "多執行緒耗時:".($e-$t)."秒<br>";
- /* 單執行緒速度測試 */
- $t = microtime(true);
- foreach($urls as $key=>$url){
- dump(model_http_curl_get($url));
- }
- $e = microtime(true);
- echo "For迴圈耗時:".($e-$t)."秒<br>";
多執行緒耗時:2.8371710777282714844秒
For迴圈耗時:10.941586017608642578秒
原文來自:http://www.thinkphp.cn/topic/22676.html
相關推薦
windows下安裝php真正的多執行緒擴充套件pthreads教程
擴充套件地址:http://docs.php.net/manual/zh/book.pthreads.php注意事項 php5.3或以上,且為執行緒安全版本。apache和php使用的編譯器必須一致。 通過phpinfo()檢視Thread Safety為enabled則為執行緒安全版。 通過phpinfo(
Windows下PHP多執行緒擴充套件pthreads的安裝
檢視phpinfo() 複製檔案 複製php_pthreads.dll到D:\wamp\bin\php\php5.5.12\ext\目錄下 複製pthreadVC2.dll到D:\wamp
PHP 真正多執行緒的使用
原文地址:https://www.cnblogs.com/kluan/p/5934228.html PHP 5.3 以上版本,使用pthreads PHP擴充套件,可以使PHP真正地支援多執行緒。多執行緒在處理重複性的迴圈任務,能夠大大縮短程式執行時間。 我之前的文章中說過,大多數網
PHP安裝threads多執行緒擴充套件基礎教程
一、下載pthreads擴充套件 二、判斷PHP是ts還是nts版 通過phpinfo(); 檢視其中的 Thread Safety 項,這個專案就是檢視是否是執行緒安全,如果是:enabled,一般來說應該是ts版,否則是nts版。 三、根據P
windows下socket程式設計,多執行緒
sercer端 #include <stdio.h> #include <process.h> #include <Winsock2.h> #pragma comment(lib,"ws2_32.lib") void send(void
PHP安裝pthreads多執行緒擴充套件教程[windows篇]
一、判斷PHP是ts還是nts版 通過phpinfo(); 檢視其中的 Thread Safety 項,這個專案就是檢視是否是執行緒安全,如果是:enabled,一般來說應該是ts版,否則是nts版
PHP安裝pthreads多執行緒擴充套件[windows篇]
一、判斷PHP是ts還是nts版 通過phpinfo(); 檢視其中的 Thread Safety 項,這個專案就是檢視是否是執行緒安全,如果是:enabled,一般來說應該是ts版,否則是nts
c++ 網路程式設計(九)TCP/IP LINUX/windows下 多執行緒超詳細教程 以及 多執行緒實現服務端
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <process.h> #include <winsock2.h> #include <win
c++ 網路程式設計(九)TCP/IP LINUX/windows下 多執行緒超詳細教程 以及 多執行緒實現服務端
原文作者:aircraft 原文連結:https://www.cnblogs.com/DOMLX/p/9661012.html 先講Linux下(windows下在後面可以直接跳到後面看): 一.執行緒基本概念 前面我們講過多程序伺服器,但我們知道它開銷很大
Windows下安裝PHP開發環境
說明 zip 系統 () html fin php zip 官網 安裝配置 一、Apache 因為Apache官網只提供源代碼,如果要使用必須得自己編譯,這裏我選擇第三方安裝包Apache Lounge。 進入Apachelounge官方下載地址:http://www.a
Python真正多執行緒之殤——GIT全域性解釋鎖
- 多執行緒的理解: 多程序和多執行緒都可以執行多個任務,執行緒是程序的一部分。執行緒的特點是執行緒之間可以共享記憶體和變數,資源消耗少(不過在Unix環境中,多程序和多執行緒資源排程消耗差距不明顯,Unix排程較快),缺點是執行緒之間的同步和加鎖比較麻煩。 Python多執行緒的缺陷:
PHP學習筆記-Windows下安裝PHP環境
1. 下載並解壓PHP安裝包 https://windows.php.net/download#php-7.2 2. 修改php.ini-development為php.ini 3. 開啟php.ini檔案,修改相關配置 1)刪除extension_dir前面的分號,並將
Windows 下安裝php redis擴充套件
1.輸出phpinfo,檢視下三處資訊,我的是x86,vc14,nts 2.去這個地址選擇下載https://windows.php.net/downloads/pecl/releases/redis/ 3.下載之後將php_redis.dll、php_redis.pdb檔案放到php安裝
linux下一個程序中多執行緒的資源共享
在說執行緒資源共享之前,我們先來說來說一下執行緒的概念,執行緒是程序內部的一條執行序列(即執行流),一個程序至少有一個執行緒,即main函式代表的執行流。當然我們也可以通過執行緒庫來建立新的執行緒,這種執行緒我們稱之為函式執行緒,同一個程序中的所有普執行緒是併發執行的。而這些
Windows下殺掉全部的子執行緒
最近遇到一個問題,就是在Windows下怎麼殺掉全部的子執行緒,現把解決方法記錄下。 問題來源: 用python執行了一個bat指令碼,指令碼的內容是執行一系列的adb命令,然後執行一個server。其中需要在新的cmd視窗中執行這些命令,因為最後會在這個視窗中啟動一個server, 這個serve
windows下安裝php環境(wampserver)
下載地址:http://www.onlinedown.net/soft/118187.htm 首先在該頁找到“下載地址”處,選擇任意地址開始下載。將WampServer軟體包下載至本地後雙擊解壓找到.exe格式檔案並執行。如下:在該介面我們直接單擊【next】開始安裝。 因
Caffe:CPU模式下使用openblas-openmp(多執行緒版本)
從所周知,所有的深度學習框架使用GPU執行是最快的,但是在不具備Nvidia顯示卡的環境下只使用CPU來執行,慢就慢點吧,對於學習階段還是夠用的。 Caffe用到的Blas可以選擇Altas,OpenBlas,Intel MKL,Blas承擔了大量了數學工作,
linux下 C++如何實現多執行緒
多執行緒是多工處理的一種特殊形式,多工處理允許讓電腦同時執行兩個或兩個以上的程式。一般情況下,兩種型別的多工處理:基於程序和基於執行緒。 基於程序的多工處理是程式的併發執行。 執行緒的多工處理是同一程式的片段的併發執行。 多執行緒程式包含可以同時執行的兩個或多個
基於threading模組下Thread,實現多執行緒TCP套接字通訊
伺服器 import socket from threading import Thread import struct, json IP = '127.0.0.1' PORT = 8080 ADD = (IP, PORT) server = socket.socket
PHP Curl多執行緒原理例項詳解
<?php // 建立一對cURL資源 $ch1 = curl_init(); $ch2 = curl_init(); // 設定URL和相應的選項 curl_setopt($ch1, CURLOPT_URL, "http://www.jb51.net/"); curl_setopt($