Php 有可能阻止zend引擎释放资源吗?
有没有可能阻止zend引擎释放PHP中分配的资源Php 有可能阻止zend引擎释放资源吗?,php,resources,php-internals,Php,Resources,Php Internals,有没有可能阻止zend引擎释放PHP中分配的资源 例如,当一个进程分叉并且资源复制到子进程时,当子进程或父进程退出时,资源是空闲的,因此其他进程无法再访问它们。释放资源不是问题,因为父进程和子进程都无法访问彼此的资源。也许你说的是mysql连接。问题是,即使您不调用mysql\u close,它也是由php调用的。这是一个例子 mysql_connect(...); if(pcntl_fork()) exit(); mysql_query( ... ); //no mysql connecti
例如,当一个进程分叉并且资源复制到子进程时,当子进程或父进程退出时,资源是空闲的,因此其他进程无法再访问它们。释放资源不是问题,因为父进程和子进程都无法访问彼此的资源。也许你说的是mysql连接。问题是,即使您不调用mysql\u close,它也是由php调用的。这是一个例子
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
或者,如果父级启动了许多子级,并且它们在退出时关闭了与数据库的连接,您可以对子级使用相同的方法。或者它不会自动释放资源?