2013-04-18 291 views
0

PHP服務器頁面如何處理來自不同用戶的多個請求?客戶端 - 服務器PHP通信

我習慣於C語言,他們使用多線程。 PHP在這種情況下使用什麼?

回答

6

PHP解釋器通常由網絡服務器(如apache,lighthttpd,...)調用。網絡服務器然後處理請求(通過線程,分叉或其他)。 PHP的每個實例都按順序運行,因此沒有內置的多線程。

存在PECL擴展https://github.com/krakjoe/pthreads,它向PHP添加了多線程。

+0

謝謝您的信息! – Taras

+1

我只想補充一點,在PHP手冊中也存在線程化的文檔:http://php.net/pthreads,另外,git上有許多可用的例子,並通過pthreads分發,還有很多有用的在github上的問題列表中的主題也是如此,所有非常好的閱讀:) –

1

這真的取決於您用來處理這些請求的服務器。 PHP本身不處理請求,而是用於解析腳本並返回結果。可以用PHP編寫Web服務器,但是再次,這都取決於您使用的服務器。

1

這實際上是一個很好的問題。一旦多個用戶嘗試發送請求到同一臺服務器,由於網絡服務器創建了一個獨立的進程,您可以爲每個請求調用它自己的會話(不是php會話),因此不會發生任何衝突。 PHP與此無關,因爲它只是一臺機器最終翻譯的腳本。

+0

PHP沒有被某些機器翻譯,它被解釋。 – bwoebi

+0

翻譯是做什麼的?最後,它被翻譯出來,想起每個計算行爲的基本形式,沒有例外。 – 2013-04-18 19:53:42

+1

翻譯...沒有。如果它會被翻譯,那麼你將得到例如可以被編譯的C代碼的結果。翻譯PHP的一個流行示例是將PHP翻譯爲C++的HipHop。 – bwoebi