簡介

PHP有一個多線程的library(PCNTL),然而此library的限制很大,只適用於Unix主機,Windows伺服器就不能使用了。Multithread Simulation就是一個替代方案,這個class 封裝了數個多線程的函數,使用的是socket功能,因此支援大部份伺服器。Multithread Simulation曾經獲得PHPClasses網站每月舉辦的Innovative Award第二名。

現時Multithread Simulation已被整合至Mix framework當中。

技術細則

Multithread Simulation的多線程概念十分簡單,利用伺服器的多線程功能來模擬PHP的多線程功能。實際運作情況是在一段PHP script中開啟一個Socket,然後用這個Socket連接到本地伺服器並發出查詢,此時PHP的執行並不會受阻,而Socket的查詢就成了伺服器的新線程。如果一直不從Socket的查詢取回結果,PHP的執行就一直不會受阻,這效果就成了背景線程的概念了。