과거에 컬을 사용한 멀티스레딩은 실제 멀티스레딩이 아니라 단지 시뮬레이션된 멀티스레딩에 불과했습니다. 이제 실제 멀티스레딩을 구현하기 위해 pthreads가 사용됩니다.
다운로드:
Windows:
http://windows.php.net/downloads/pecl/releases/pthreads/0.0.45/
Mac, Unix, Linux의 경우:
https://github.com/krakjoe/pthreads
설치 방법:
Windows의 경우:
압축 해제 pthreadVC2.dll 및 php_pthreads.dll 파일을 복사하려면 vc2 파일을 php.exe와 동일한 디렉터리에 넣고 확장 디렉터리에 php_pthreads.dll을 넣습니다.
php.ini 파일 수정 및 확장자=php_pthreads.dll 추가
Apache 구성 파일 httpd.conf 수정 및 LoadFile "yourpath/php/pthreadVC2.dll" 추가
mac, unix , Linux 환경:
자세한 내용은 Yan 형제 블로그 http://blog.s135.com/pthreads/
호출 방법:
을 참조하세요. 구체적인 사용법은 Yan 형제의 블로그 http://blog.s135.com/pthreads/를 참조하세요.
이전 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 }
위 내용은 pthread 다중 스레드 데이터 수집의 측면을 포함하여 소개되었으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.