您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(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ò),可以把它分享出去讓更多的人看到吧!
免責(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)容。