Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 有可能阻止zend引擎释放资源吗?_Php_Resources_Php Internals - Fatal编程技术网

Php 有可能阻止zend引擎释放资源吗?

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

有没有可能阻止zend引擎释放PHP中分配的资源


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

释放资源不是问题,因为父进程和子进程都无法访问彼此的资源。也许你说的是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 

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

或者它不会自动释放资源?