溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php多線程的示例分析

發(fā)布時(shí)間:2021-09-22 17:08:18 來源:億速云 閱讀:134 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)php多線程的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

  PHP默認(rèn)并不支持多線程,要使用多線程需要安裝pthread擴(kuò)展,而要安裝pthread擴(kuò)展,必須使用--enable-maintainer-zts參數(shù)重新編譯PHP,這個(gè)參數(shù)是指定編譯PHP時(shí)使用線程安全方式。

  php多線程支持嗎

  if(function_exists('date_default_timezone_set')){

  date_default_timezone_set('PRC');

  }

  functiona(){

  $time=time();sleep(3);

  $fp=fopen('result_a'.$time.'.log','w');

  fputs($fp,'Setin'.Date('h:i:s',time()).(double)microtime()."rn");

  fclose($fp);

  }

  functionb(){

  $time=time();

  sleep(3);

  $fp=fopen('result_b'.$time.'.log','w');

  fputs($fp,'Setin'.Date('h:i:s',time()).(double)microtime()."rn");

  fclose($fp);

  }

  if(!isset($_GET['act']))$_GET['act']='a';

  if($_GET['act']=='a'){

  a();

  }

  elseif($_GET['act']=='b')b();

  ?>

  以上代碼,在本地寫入一個(gè)文件。

  PHP多線程讀寫文件:

  如果你訪問localhost/a.php在兩個(gè)瀏覽器標(biāo)簽盡可能快的同時(shí)打開,發(fā)現(xiàn)兩個(gè)文件創(chuàng)建時(shí)間相差為3秒

  但是如果你訪問localhost/a.php?act=b另一個(gè)訪問/a.php?act=a你發(fā)現(xiàn)兩個(gè)文件創(chuàng)建的時(shí)間幾乎差不多。

  對(duì)于apache來說同樣的url意味著一個(gè)線程(我們或者說是進(jìn)程),但是不同的URL意味著可以并發(fā)。

  如果php內(nèi)部有下載的動(dòng)作

  functionrunThread(){

  }

  if($_GET['act']=='run'){

  echo'start:';

  runThread();

  echo'End';

  }

  只要主訪問的url不同,則認(rèn)為是不同的進(jìn)行,意味著并發(fā)。文件創(chuàng)建時(shí)間不為3秒

感謝各位的閱讀!關(guān)于“php多線程的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI