静的メンバー: 新しいコンテキスト (Thread あるいは Worker) を作るときには、一般的にそれらはコピーされます。
しかし、リソースおよび内部状態を持つオブジェクトは、安全性を考慮して null 化されます。
これを、一種のスレッドローカルストレージとして使えます。
たとえば、データベースサーバーへの接続情報と接続そのものを静的メンバーとして持つクラスがあるとします。
コンテキストを開始するときには接続情報だけがコピーされ、接続自体はコピーされません。
新しいコンテキスト上ではそのコンテキストを作ったオブジェクトと同じ方法で接続を立ち上げることができ、
その接続を同じ場所に格納しても元のコンテキストには何も影響を及ぼしません。
- 静的メンバやsocketなどのオブジェクトはコピーされない。
- スレッド処理は慎重に – PHPでのスレッド処理 : 前編 | 未分類 | POSTD
- スレッド処理は慎重に – PHPでのスレッド処理 : 後編 | プログラミング | POSTD
- PHPのpthreadsの動作テスト - メモリーの誰得なプログラミング日記
- php - FuelPHPのtaskでマルチスレッドを使用すると外部クラスが見つからない - スタック・オーバーフロー
* pthreads拡張で作ったスレッドでは、クラスの別名やオートローダがリセットされます