情况:
我正在用C编写一个维护许多线程的程序。一旦线程结束,就会创建一个新线程。
每个线程分叉 - 子进程通过exec()运行PHP进程,父进程等待它完成。
每个PHP进程从队列中获取下一个项目,处理它并退出。
基本代码:http://www.4pmp.com/2010/03/multitasking-php-in-parallel/
问题:
PHP进程是Symfony任务,Symfony需要相当大的内存。如何安全地计算每个线程所需的堆栈空间,以便PHP进程有足够的内存?
php.ini中设置的内存限制是128Mb所以我应该在堆栈中分配这么多空间吗?
答案 0 :(得分:3)
当fork
获得新进程时,当exec
进程被您执行的进程替换时。因此,C程序中任何堆栈空间的设置都与PHP内存使用无关。
答案 1 :(得分:0)
在某种程度上是YES ..因为,由于PHP.ini将内存使用/限制限制为128 MB,我们知道它是PHP进程将使用的最大内存。 因此,最好为每个线程分配这样的空间[安全方..它的大小加倍]。