php是單線程還是多線程
㈠ php 到底是單進程還是多進程
一般都是多進程,由php-fpm或者fastcgi開啟並管理的。這個沒什麼意義。
你應該想問的是PHP是單線程還是多線程。
一般PHP是默認單線程的,不過可以用php插件來支持多線程模式。
㈡ php單線程訪問和多線程誰更快一些
php單線程訪問更快一些。線程切換是有開銷的,會導致程序運行變慢。單線程比多線程的運行速度更快。
㈢ php是單進程還是單線程啊
默認運行是單進程多線程的,線程用完就銷毀
可以開啟多進程,但這樣做意義不大
㈣ PHP支持多線程嗎
PHP語言本身是不支持多線程的。網上關於PHP模擬多線程的方法,都是利用了LINUX和APACHE等本身所具有的多線程能力。既然是模擬的,就不是真正的多線程,其實只是多進程。
1. 利用LINUX操作系統
<?php
for ($i=0;$i<10;$i++) {
echo $i;
sleep(5);
}
?>
上面存成test.php, 然後寫一段SHELL代碼
#!/bin/bash
for i in 1 2 3 4 5 6 7 8 9 10
do
php -q test.php &
done
2. 利用fork子進程(其實同樣是利用LINUX操作系統)
<?php
declare(ticks=1);
$bWaitFlag = FALSE; /// 是否等待進程結束
$intNum = 10; /// 進程總數
$pids = array(); /// 進程PID數組
echo ("Startn");
for($i = 0; $i < $intNum; $i++) {
$pids[$i] = pcntl_fork();/// 產生子進程,而且從當前行之下開試運行代碼,而且不繼承父進程的數據信息
if(!$pids[$i]) {
// 子進程進程代碼段_Start
$str="";
sleep(5+$i);
for ($j=0;$j<$i;$j++) {$str.="*";}
echo "$i -> " . time() . " $str n";
exit();
// 子進程進程代碼段_End
}
}
if ($bWaitFlag)
{
for($i = 0; $i < $intNum; $i++) {
pcntl_waitpid($pids[$i], $status, WUNTRACED);
echo "wait $i -> " . time() . "n";
}
}
echo ("Endn");
?>
3. 利用WEB SERVER, PHP不支持多線程, APACHE可是支持的, 呵呵.
假設我們現在運行的是a.php這個文檔. 但是我在程式中又請求WEB伺服器運行另一個b.php
那麼這兩個文檔將是同時執行的.
<?php
function runThread()
{
$fp = fsockopen('localhost', 80, $errno, $errmsg);
fputs($fp, "GET /a.php?act=brnrn");
fclose($fp);
}
function a()
{
$fp = fopen('result_a.log', 'w');
fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "rn");
fclose($fp);
}
function b()
{
$fp = fopen('result_b.log', 'w');
fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "rn");
fclose($fp);
}
if(!isset($_GET['act'])) $_GET['act'] = 'a';
if($_GET['act'] == 'a')
{
runThread();
a();
}
else if($_GET['act'] == 'b') b();
?>
也可以把需要多線程處理的部分交給java去處理,然後在PHP里調用。
<?php
system('java multiThread.java');
?>
㈤ php的介紹及Php有什麼優勢
優點和缺點:
1:學習簡單,做為一種腳本語言,學習簡單是必須的!同樣的,作為一種腳本語言,效率問題,永遠是痛點,特別是復雜的運算
2:語法較隨意,同樣的,語法的隨意性,使得在閱讀沒有注釋的代碼時,無法很清楚的明白到底是什麼意思,比如Java,變數的類型是固定的,而php則前面可以是string,後面直接成array都沒關系
3:php本身不支持多線程(swoole除外)
4:php沒有直接操作內存的函數(至少本人不知道,6還沒研究,不知道有沒)
5:作為一種弱語言,php也算很好了,比之perl等也不錯
6: php可以說應用范圍很狹窄(個人理解,除了網頁之外,好像沒什麼其他用途了,如果內嵌在游戲中那麼python是不錯的選擇,cli也能湊合,),當然,我把php做的server-api這種模式也理解為是網頁!