我寫在C程序,維護了大量的線程。線程結束後,會創建一個新線程。
每個線程分叉 - 子進程通過exec()運行一個PHP進程,父進程等待它完成。
每個PHP進程從隊列中取下一個項目,處理它並退出。
Basic代碼:http://www.4pmp.com/2010/03/multitasking-php-in-parallel/
問題:
PHP的過程是Symfony的任務,Symfony的,需要相當大量的內存。我如何安全地計算每個線程所需的堆棧空間,以便PHP進程具有足夠的內存?
在php.ini中設置的內存限制是128Mb,所以我應該在堆棧中分配這麼多空間嗎?
你爲什麼通過這樣的線程流失?難道你不能只是得到一個線程來執行一個接一個的任務嗎? – 2010-04-23 12:19:48
在這種情況下,隊列中的每個項目都是電子郵件,因此多線程很有意義,因爲瓶頸不是CPU,而是SMTP通信。 – SlappyTheFish 2010-04-23 12:46:24
我很確定PHP的memory_limit是堆,而不是堆棧。 – 2010-04-23 12:47:20