タグ

apacheとスレッドに関するiwwのブックマーク (1)

  • php と static 変数 とスレッド

    ふと、次のような php のコードを見て、激しく不安を覚えた static $db; if( !isset($db) ) { $db = &new FooDatabase; if( $db->is_connected() ) { ... 接続処理 } } どこに気持ち悪さがあるか?というと、データベースへの接続は、スレッド|プロセス毎に接続するのが普通だからである。これを解き明かすには、apache2 と php の実装を理解していないと、どうにもならない。 apache2 では、prefork, thread, event の3タイプがあるようで、一般的な構成は prefork である。 なるほど、それならば、上記コードでも問題は無さそうである。HTTP/1.1 で Keep-Alive が効いている間はセッション毎に static $db を利用しているので継続性がある。Kepp-Al

  • 1