0

是否可以防止 zend 引擎释放 PHP 中分配的资源?

例如,当一个进程被 forked() 并且资源被复制到子进程时,当子进程或父进程退出时,资源是空闲的,因此其他进程无法再访问它们。

4

1 回答 1

0

释放资源不是问题,因为父母和孩子无法访问彼此的资源。也许你在谈论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 

或者,如果父母启动了许多孩子并且他们在退出时关闭了与数据库的连接,您可以对孩子使用相同的方法。

于 2011-03-30T18:44:59.517 回答