Skip to content

Instantly share code, notes, and snippets.

@tiijima
Last active February 1, 2016 02:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tiijima/3de327bd9399575c75a7 to your computer and use it in GitHub Desktop.
Save tiijima/3de327bd9399575c75a7 to your computer and use it in GitHub Desktop.
php pthread マルチスレッド メモ

php pthread マルチスレッド メモ

参考・抜粋

静的メンバー: 新しいコンテキスト (Thread あるいは Worker) を作るときには、一般的にそれらはコピーされます。 
しかし、リソースおよび内部状態を持つオブジェクトは、安全性を考慮して null 化されます。 
これを、一種のスレッドローカルストレージとして使えます。
たとえば、データベースサーバーへの接続情報と接続そのものを静的メンバーとして持つクラスがあるとします。
コンテキストを開始するときには接続情報だけがコピーされ、接続自体はコピーされません。
新しいコンテキスト上ではそのコンテキストを作ったオブジェクトと同じ方法で接続を立ち上げることができ、
その接続を同じ場所に格納しても元のコンテキストには何も影響を及ぼしません。
  • 静的メンバやsocketなどのオブジェクトはコピーされない。
* pthreads拡張で作ったスレッドでは、クラスの別名やオートローダがリセットされます

mac phpでpthreadを使う

pecl/pearをインストール

phpbrewのインストール

pthreadsの利用

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment