您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關php多線程的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
PHP默認并不支持多線程,要使用多線程需要安裝pthread擴展,而要安裝pthread擴展,必須使用--enable-maintainer-zts參數重新編譯PHP,這個參數是指定編譯PHP時使用線程安全方式。
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();
?>
以上代碼,在本地寫入一個文件。
PHP多線程讀寫文件:
如果你訪問localhost/a.php在兩個瀏覽器標簽盡可能快的同時打開,發現兩個文件創建時間相差為3秒
但是如果你訪問localhost/a.php?act=b另一個訪問/a.php?act=a你發現兩個文件創建的時間幾乎差不多。
對于apache來說同樣的url意味著一個線程(我們或者說是進程),但是不同的URL意味著可以并發。
如果php內部有下載的動作
functionrunThread(){
}
if($_GET['act']=='run'){
echo'start:';
runThread();
echo'End';
}
只要主訪問的url不同,則認為是不同的進行,意味著并發。文件創建時間不為3秒
感謝各位的閱讀!關于“php多線程的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。