我写在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