C中的多线程程序:计算线程堆栈空间

时间:2010-04-23 12:11:44

标签: php c multithreading stack

情况:

我正在用C编写一个维护许多线程的程序。一旦线程结束,就会创建一个新线程。

每个线程分叉 - 子进程通过exec()运行PHP进程,父进程等待它完成。

每个PHP进程从队列中获取下一个项目,处理它并退出。

基本代码:http://www.4pmp.com/2010/03/multitasking-php-in-parallel/

问题:

PHP进程是Symfony任务,Symfony需要相当大的内存。如何安全地计算每个线程所需的堆栈空间,以便PHP进程有足够的内存?

php.ini中设置的内存限制是128Mb所以我应该在堆栈中分配这么多空间吗?

2 个答案:

答案 0 :(得分:3)

fork获得新进程时,当exec进程被您执行的进程替换时。因此,C程序中任何堆栈空间的设置都与PHP内存使用无关。

答案 1 :(得分:0)

在某种程度上是YES ..因为,由于PHP.ini将内存使用/限制限制为128 MB,我们知道它是PHP进程将使用的最大内存。 因此,最好为每个线程分配这样的空间[安全方..它的大小加倍]。