PHP7多線程搭建教程
一直想寫個爬蟲,于是就用PHP寫了一個,眾所周知PHP并不支持多線程,所以爬行效率很低,同時運(yùn)行10個進(jìn)程,內(nèi)存和CPU占用率很高,開大概10個進(jìn)程爬行,對爬行時間還進(jìn)行優(yōu)化,但我的mac pro還是差不多就down掉了。 于是開始采用PHP7結(jié)合pthreads多線程工具,經(jīng)測試,穩(wěn)定性、效率、內(nèi)存和cpu的占用各方面都很滿意。 下邊就介紹PHP7的多線程環(huán)境搭建。
安裝PHP7
以下所有命令在root用戶下執(zhí)行 下載PHP7,目前最新版本是7.0.3,根據(jù)情況自行選擇版本,PHP5.4以后的各版本也是支持的。
wget http://ar2.php.net/get/php-7.0.3.tar.gz/from/this/mirror -O php.tar.gz tar xvfz php.tar.gz cd php
編譯安裝。
選項自行選擇,可以讓PHP多版本共存。但maintainer-zts是必須的,如果只做爬蟲,除了curl,其它擴(kuò)展基本不用安裝。遇到無法安裝的自行查找解決,例如我安裝的時候遇到iconv沒有找到,那直接就without了。
./configure --prefix=/usr/local/php7 --without-iconv --enable-maintainer-zts --with-curl make make install
安裝完成
然后開始安裝pthreads。用pecl安裝是超級簡單的。
cd /usr/local/php7/bin ./pecl install pthreads
安裝完成
配置文件
在/usr/local/php7/lib/目錄下新建php.ini文件,初始文件可在php源碼的根目錄找到php.ini-production 然后編輯php.ini,在末尾增加
extension="pthreads.so"
安裝完成
查看安裝是否成功
運(yùn)行
/usr/local/php7/bin/php -m
查看模塊支持列表,如果有pthreads存在則說明環(huán)境創(chuàng)建成功。 或者編輯文件test.php
<?php $thread = new class extends Thread { public function run() { echo "Hello World\n"; } }; $thread->start() && $thread->join(); ?>
成功輸出Hello World說明成功。
以上所述是小編給大家介紹的PHP7多線程搭建教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
thinkphp 框架數(shù)據(jù)庫切換實現(xiàn)方法分析
這篇文章主要介紹了thinkphp 框架數(shù)據(jù)庫切換實現(xiàn)方法,結(jié)合實例形式分析了thinkphp 框架數(shù)據(jù)庫切換實現(xiàn)方法與操作注意事項,需要的朋友可以參考下2020-05-05PHP框架Laravel中使用UUID實現(xiàn)數(shù)據(jù)分表操作示例
這篇文章主要介紹了PHP框架Laravel中使用UUID實現(xiàn)數(shù)據(jù)分表操作,結(jié)合實例形式較為詳細(xì)的分析了Laravel框架基于UUID進(jìn)行數(shù)據(jù)分表的相關(guān)操作步驟、實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下2018-05-05php使用goto實現(xiàn)自動重啟swoole、reactphp、workerman服務(wù)的代碼
這篇文章主要介紹了php使用goto實現(xiàn)自動重啟swoole、reactphp、workerman服務(wù)的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04golang實現(xiàn)php里的serialize()和unserialize()序列和反序列方法詳解
這篇文章主要介紹了golang實現(xiàn)php里的serialize()和unserialize()序列和反序列方法詳解,需要的朋友可以參考下2018-10-10thinkphp驗證碼的實現(xiàn)(form、ajax實現(xiàn)驗證)
這篇文章主要介紹了thinkphp驗證碼的實現(xiàn)(form、ajax使用驗證)的相關(guān)資料,需要的朋友可以參考下2016-07-07php打亂數(shù)組二維數(shù)組多維數(shù)組的簡單實例
下面小編就為大家?guī)硪黄猵hp打亂數(shù)組二維數(shù)組多維數(shù)組的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06自定義min版smarty模板引擎MinSmarty.class.php文件及用法
這篇文章主要介紹了自定義min版smarty模板引擎MinSmarty.class.php文件及用法,可實現(xiàn)簡單的Smarty模板變量替換與輸出顯示等功能,具有一定參考借鑒價值,需要的朋友可以參考下2016-05-05