情况:
我正在用 C 编写一个维护多个线程的程序。一旦线程结束,就会创建一个新线程。
每个线程 fork - 子进程通过 exec() 运行一个 PHP 进程,父进程等待它完成。
每个 PHP 进程从队列中取出下一个项目,处理它并退出。
问题:
PHP 进程是 Symfony 任务,Symfony 需要相当大的内存量。如何安全地计算每个线程所需的堆栈空间,以便 PHP 进程有足够的内存?
在 php.ini 中设置的内存限制是 128Mb,所以我应该在堆栈中分配这么多空间吗?
最佳答案
当您fork
时,您会得到一个新进程,当您exec
时,该进程将被您执行的进程替换。因此,C 程序中堆栈空间的任何设置都与 PHP 内存使用无关。
关于php - C中的多线程程序 : calculating thread stack space,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2698332/