2014-02-25 60 views
2

我對PHP中的pthreads有點困惑。每個人似乎都建議使用pthread來實現多線程。PHP中的pthreads的工作方式與C中的多線程工作方式完全相同嗎?

這是否意味着暴露在名爲pthreads的PHP中的API是暴露在C中的相同API,名爲pthreads,或者是針對PHP不同的東西的Posix線程和pthread?

+1

您是否閱讀過文檔? http://www.php.net/manual/cn/intro.pthreads.php – Letharion

+1

我認爲這是一個有效的問題,這裏沒有足夠的空間來回答它,如果它被重新打開,我會回答它。 .. –

+0

這是Joe提到的真正的多線程。在PHP [** AppServer **](http://www.appserver.io)基礎上構建了Web應用程序服務器, – webblover

回答

4

使用Posix進行編程PHP中的線程是一個非常糟糕的事情,它使得它可行的事實是它基於對象,爲此Zend公開了許多有用的處理程序,使用戶線程的基礎結構與Zend一起存在。

pthreads是一個高級別的對象代碼化的API(帶有Windows支持),用於線程化用戶空間的PHP腳本。它利用了已存在了十多年的PHP部分,經過了充分測試,並且與當今PHP的其他任何部分一樣得到了維護。

對於未來14年來,PHP已經能夠在多線程環境中執行,這就是mod_php如何與Windows mpm,apache2以及一些IIS設置一起工作。 pthreads利用相同的功能,Zend的Objects API允許用戶編寫託管的多線程代碼。

延伸閱讀:https://gist.github.com/krakjoe/6437782

相關問題