導航:首頁 > 編程語言 > php單線程和多線程

php單線程和多線程

發布時間:2022-08-02 00:57:03

1. php是單線程單進程的么

每個PHP文件的執行是單線程的,但是,伺服器(apache/nigix/php-fpm)是多線程的。每次對某個PHP文件的訪問伺服器都會創建一個新的進程/線程,用來執行對應的PHP文件.

2. php單線程與nodejs線性機制相同嗎

php在處理並發的時候是通過多線程處理,這樣會導致硬體成本的增加,特別是一些頻繁I/0的項目,很多的線程被阻塞,cpu得不到充分的利用。
node:node的核心理念是單線程,通過事件和回調實現並發。既然是單線程,那硬體自然比較低。
那單線程怎麼實現並發呢?我認為正是這種實現的方法讓大家耳目一新,所以才會讓node如此,
並發實現原理:比如一百個請求要做一百件事,當第一個請求執行到i/o的時候立馬掛起,不等待i/o成功,直接執行下一個事件,直到i/o完畢,這是觸發回調事件,回調事件的優先順序會比普通事件的優先順序高,就是這樣通過非同步來實現單線程的並發處理。保證了線程永遠有事做,不會等待。

3. 請問php 多線程要怎麼做呢,我下面這段程序耗時和單線程一樣的

$st=microtime(true);//這一行之後有改動
$t=array();
for($i=0;$i<5;$i++)
{
$a=newRequest();
$a->start();$t[]=$a;
}
foreach($tas$a)$a->join();
$ed=microtime(true);//這一行之前有改動

你代碼中的join用得不對...

4. 單線程和多線程是什麼意思

多線程:多線程程序中包含多個執行流,即在一個程序中可以同時運行多個不同的線程來執行不同的任務,也就是說允許單個程序創建多個並行執行。

單線程:單線程是程序中的一個執行流,每個線程都有自己的專有寄存器(棧指針、程序計數器等),但代碼區是共享的,即不同的線程可以執行同樣的函數。



(4)php單線程和多線程擴展閱讀:

由於多線程應用程序將程序劃分成獨立的任務,因此可以在以下方面顯著提高性能:多線程技術使程序的響應速度更快,因為用戶界面可以在進行其他工作的同時一直處於活動狀態。 當前沒有進行處理的任務可以將處理器時間讓給其他任務。

佔用大量處理時間的任務可以定期將處理器時間讓給其他任務。 可以隨時停止任務。 可以分別設置各個任務的優先順序以優化性能。

5. PHP是單線程的 - PHP進階討論

剛版主那個鏈接里的「多線程」竟然是開打新的http鏈接處理。。。php在apache、linux上面是每個請求打開一個處理進程,給進程置環境變數,然後由解釋器順序執行php代碼,應該算是單線程的了吧。多線程的只能是通過某些介面調用外部的進程來協助處理。

6. php真的有多進程,多線程嗎

通常意義上所說的多進程是由apache調度的,比如html頁面同時發送5個ajax請求的時候,那麼5個php進程會幾乎同時進行。
PHP本身是不存在多線程的,總是單線程的方式執行。

誤區就是PHP可以通過特別的手段用多進程的方式來模擬多線程,不過幾乎用不到。因為PHP不像java之類的本身有進程管理機制,因此模擬的多線程非常不好控制,同時效率也並不高。

7. php在web上運行是多進程還是單進程

php在web上運行是單進程的,具體原因如下:
1、PHP是一個單線程的腳本開發語言,它常在Web開發及系統集成中出現。
PHP是單進程單線程的,當處理復雜的業務的時候我們會發現他串列執行命令的時候CPU、磁碟、內存等利用的都很低有很多時候都是在排隊等待,有的時候我們想並發的讓他去執行一批任務然後一起拿解決結果是一件很痛苦的事情(自己用pthread或者其他方式才能解決,但是這很痛苦)開發語言一直在升級變化適應需要。另外,可以考慮通訊使用Swoole。
2、解決方案如下:
分前後端,前端可以通過消息中間件,同步、非同步 調用一個或多個介面。但是socket的擴展確確實實不咋好用。不是普通小企業能做的出來的。

8. 單線程和多線程的區別

多線程和單線程本質區別是:
(1)多線程的產生並不是因為發明了多核CPU甚至現在有多個CPU+多核的硬體,也不是因為多線程CPU運行效率比單線程高。單從CPU的運行效率上考慮,單任務進程及單線程效率是最高的,因為CPU沒有任何進程及線程的切換開銷,
(2)實際上,多線程的出現主要為了解決IO設備的讀寫速度往往比CPU的處理速度慢造成的單線程程序運行阻塞問題,一個極端的例子就是如果你需要用戶在鍵盤上輸入一個數據,當用戶沒有輸入前,單線程程序就阻塞了,多線程程序就可以放個音樂或繼續干一些程序中除了鍵盤輸入外的工作,因此,多線程能提高因程序由於等待某個資源阻塞時其他資源的利用率(是利用率不是效率)。
(3)因此多線程與單線程的最大區別,多線程程序能在等待某個IO操作時,繼續完成非這個IO的其他工作,有利於提高完成整個任務的效果和速度。此外,多線程程序與單線程程序對程序設計也有不同的流程和結構,多線程需要考慮對靜態變數等資源的操作互鎖及程序執行的同步問題。

9. PHP 到底是單進程還是多進程

默認是單進程,可以支持多進程

閱讀全文

與php單線程和多線程相關的資料

熱點內容
程序員大咖java 瀏覽:62
蘋果手機文檔安卓上怎麼打開 瀏覽:527
如何做淘寶代理伺服器 瀏覽:664
gz壓縮文件夾 瀏覽:179
字母h從右往左跑的c語言編程 瀏覽:127
安卓手機如何擁有蘋果手機橫條 瀏覽:765
業余編程語言哪個好學 瀏覽:137
按照文件夾分個壓縮 瀏覽:104
航空工業出版社單片機原理及應用 瀏覽:758
如何在電信app上綁定親情號 瀏覽:376
安卓的怎麼用原相機拍月亮 瀏覽:805
配音秀為什麼顯示伺服器去配音了 瀏覽:755
c盤清理壓縮舊文件 瀏覽:325
app怎麼交付 瀏覽:343
圖蟲app怎麼才能轉到金幣 瀏覽:175
如何做徵文app 瀏覽:446
用什麼app管理斐訊 瀏覽:169
安卓如何下載寶可夢劍盾 瀏覽:166
編譯器開發屬於哪個方向 瀏覽:940
megawin單片機 瀏覽:687