2012-08-27 273 views
3

我已經閱讀過,PHP不支持多線程,但有解決方法。但是爲什麼確實PHP不支持多線程?對於服務器端腳本語言來說,這似乎是一個明顯的遺漏。爲什麼PHP不支持多線程?

+1

我認爲當你說腳本語言時你會碰到它。這不是真正意義上的問題解決方案,它更像是一種膠水。如果你正在做一些需要線程化的東西,那麼最好使用比PHP更具性能的東西。 PHP是......呃......古怪,缺乏較少的攻擊性術語。 – Wug

+0

嗯...... Python通常被認爲是「腳本」(儘管它使全面的PL模糊)。而AFAIK,你可以在Python中使用線程,即使在web-dev中也是如此? http://docs.python.org/library/threading.html – skytreader

+1

你可以。 python中的線程有些癱瘓。但是,同樣的規則也適用,如果你正在做一些嚴重效率驅動的事情,python不是一個好的選擇。至少,Python通常被認爲是比PHP更好的設計。 – Wug

回答

-6

由於PHP是沒有考慮到多線程編寫,這將是一個巨大的努力(基本上是100%重寫),並將它添加

有人會說,PHP是相當多的一個巨大的一堆:http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/。從這個角度來看,線程不包括在內並不奇怪。

+0

那麼......(多線程)聚會剛剛開始呢?而已?抗議:| 。那麼爲什麼不考慮多線程支持? Lazy Rasmus Lerdorf? – skytreader

+3

PHP開始作爲Rasmus的特定用途個人項目來跟蹤他的在線簡歷訪問:http://www.php.net/manual/en/history.php.php。從那裏它成長爲「其他」。 – jnylen

+2

@jnylen這似乎是非常糟糕的答案。自2012年以來,多線程已在PHP中可用。請查看[** Pthreads **](http://pthreads.org)。另外[** PHP App Server **](http://www.appserver.io)已經使用pthreads構建。 – webblover

9

閱讀本網址,我認爲這對你有幫助。

PHP多線程 - 作假

http://w-shadow.com/blog/2007/08/20/php-multithreading-faking-it/

PHP真的不支持多線程本身,而是有很多方法可以做「假」多線程。這裏是我在PHPClasses.org通訊中看到的一個 -

Multi-thread Simulation

請注意,此類是intedend在Web服務器上使用,而不是從命令行(或類似)運行PHP腳本。如果您使用PHP作爲獨立腳本語言,請檢查本文的結尾部分,您可以嘗試一些替代方法。