是否可以防止 zend 引擎释放 PHP 中分配的资源?
例如,当一个进程被 forked() 并且资源被复制到子进程时,当子进程或父进程退出时,资源是空闲的,因此其他进程无法再访问它们。
是否可以防止 zend 引擎释放 PHP 中分配的资源?
例如,当一个进程被 forked() 并且资源被复制到子进程时,当子进程或父进程退出时,资源是空闲的,因此其他进程无法再访问它们。
释放资源不是问题,因为父母和孩子无法访问彼此的资源。也许你在谈论mysql连接。问题是即使你不调用mysql_close()
它也是由 php.ini 调用的。这是一个例子
mysql_connect(...);
if(pcntl_fork()) exit();
mysql_query( ... ); //no mysql connection here
我听说父母可以通过杀死自己来防止这种情况SIGKILL
,但我还没有测试过。应该是这样的:
mysql_connect(...);
if(pcntl_fork()) {
posix_kill ( posix_getpid() , SIGKILL);
exit(); // won't hurt to leave it here
}
mysql_query( ... ); //no mysql connection here
或者,如果父母启动了许多孩子并且他们在退出时关闭了与数据库的连接,您可以对孩子使用相同的方法。