0

zend engineがPHPで割り当てられたリソースを解放するのを防ぐことは可能ですか?

たとえば、プロセスがforked()され、リソースが子プロセスに複製された場合、子プロセスまたは親プロセスのいずれかが終了すると、リソースは解放されるため、他のプロセスはそれらにアクセスできなくなります。

4

1 に答える 1

0

親と子は互いのリソースにアクセスできないため、リソースの解放は問題ではありません。多分あなたは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 

または、親が多くの子を開始し、終了時にデータベースへの接続を閉じる場合、子に対して同じアプローチを使用できます。

于 2011-03-30T18:44:59.517 に答える