以前使用curl的多線程並不是真正的多線程,只是一種模擬的多線程,現在使用pthreads來實現真正意義上的多線程。
下載:
windows下:
http://windows.php.net/downloads/pecl/releases/pthreads/0.0.45/php.net/downloads/pecl/releases/pthreads/0.0.45/php.net/downloads/pecl/releases/pthreads/0.0.45/php.net/downloads/pecl/releases/pthreads/0.0.45/php.net/downloads/pecl/releases/pthreads/0.0.45/php.net/35/ https://github. com/krakjoe/pthreads
安裝方式:
windows下:
解壓得到pthreadVC2.dll和php_pthreads.dll檔文件,把同級檔放到pthread
修改php.ini檔案新增extension=php_pthreads.dll
修改Apache設定檔httpd.confLoadFile "yourpath/php/p.p.Smache配置 具體可參考宴哥的部落格http://blog.s135.com/pthreads/
呼叫方式:
具體的用法也可以參考宴哥的部落格http://blog.s135.com/pthreads/
結合以前的get_html也可以結合以前的get_html也可以結合以前的get_html 這樣來實現類別
1 class threads extends Thread 2 { 3 public $url = ''; 4 public $options = array(); 5 public $data; 6 7 public function __construct($url, $options = array()){ 8 $this->url = $url; 9 $this->options = $options; 10 } 11 12 public function run(){ 13 if(!empty($this->url)){ 14 $this->data = $this->get_html($this->url, $this->options); 15 } 16 } 17 18 public function get_html($url,$options = array()){ 19 if(empty($options)){ 20 $options[CURLOPT_RETURNTRANSFER] = true; 21 $options[CURLOPT_TIMEOUT] = 5; 22 } 23 $ch = curl_init($url); 24 curl_setopt_array($ch,$options); 25 $html = curl_exec($ch); 26 curl_close($ch); 27 if($html === false){ 28 return false; 29 } 30 return $html; 31 } 32 }
以上就介紹了pthreads多執行緒資料收集,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。