Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

Something Like Threading - PHP Process Forking and Interprocess Communication


またもや「PHPでマルチスレッドチック」なネタで、ネタ振りだけですみません。
今度はsocketを使ってプロセス間通信するサンプルのようです。

ページの上から1/3ほどにあるThreaderクラスのコードがそれです。socket_create_pair関数でソケットペアを作った後pcntl_fork関数でforkし、子プロセス側から親プロセスに現在の状態(「RUNNING」「UPTO」「STOP」の3種類)を通知しているようです。
CLIPHPで実行してみると、

$ php Threader.php
1001
2002
300397097
98098
99099
All done!
$ 

な感じで動作します。
先日のエントリと比べるとインパクトは小さい(^^;ですが、「fork+socket」ってコードを見ていて面白いですね :-)