是否可以防止zend引擎释放资源?
Posted
技术标签:
【中文标题】是否可以防止zend引擎释放资源?【英文标题】:Is it possible to prevent zend engine to free resources? 【发布时间】:2011-03-25 14:24:08 【问题描述】:是否可以防止zend引擎释放php中分配的资源?
例如,当一个进程被 forked() 并且资源被复制到子进程时,当子进程或父进程退出时,资源是空闲的,因此其他进程无法再访问它们。
【问题讨论】:
还是没有自动释放资源? 【参考方案1】:释放资源不是问题,因为父母和孩子无法访问彼此的资源。也许你在谈论mysql连接。问题是即使你不调用mysql_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
或者如果父母启动了许多孩子并且他们在退出时关闭了与数据库的连接,您可以对孩子使用相同的方法。
【讨论】:
以上是关于是否可以防止zend引擎释放资源?的主要内容,如果未能解决你的问题,请参考以下文章