web-dev-qa-db-ja.com

PHPスレッドセーフですか?

  • はPHP(5.2以降)Linux/UNIXでスレッドセーフですか?
  • Apache Worker-MPMまたはEvent-MPMで使用できますか?

これまでに収集した事実は決定的ではありません。

  • ほとんどのディストリビューションに含まれるデフォルトのバイナリはZTSが無効になっているため、再コンパイルする必要があることは承知しています。
  • 理論上、ZTSを有効にしたZend Engine(コアPHP)はスレッドセーフです。
  • 一部のモジュールはスレッドセーフではない可能性があると言われていますが、存在するモジュールまたは存在しないモジュールのリストは見つかりませんでした。
  • PHP FAQ 上記とほとんど同じです。

あなたの経験は?

セグメンテーションフォールト (Windowsの命名法での「アクセス違反」)だけではありません。 スレッドセーフティ にはさらに多くの機能があります。

51
vartec

私はgettextを知っています set_locale はスレッドセーフではありません。 PHPは、スレッド化されたMPMでは使用しないでください。

PHPはまだスレッドセーフではありません
Running PHP not threaded

23
OIS

オプションのPHP拡張機能?のコンパイルに必要なライブラリはどこで入手できますかスレッドセーフおよび非スレッドセーフの拡張機能のリストについては(*マークはスレッドセーフではありませんが、他のものはそうです)。

6
AbdolHosein

より良い質問は、「MPMが使用されている場合、次のPHPコードはアクセス違反をトリガーしますか?」、または、「 」

それ以外の場合は、ロシアンルーレットです。パッケージ化されたアプリケーションを使用している場合、今は正常に動作するかもしれませんが、アプリケーションの新しいバージョンがリリースされてから1か月後には中断します。

MPMをPHP一般的に使用することは強くお勧めします。ただし、実行する小さなコードがある場合は投稿してください。落とし穴にぶつかるかどうかを確認できます。 。

5
Tim Post