セマフォを利用して排他制御を行いながら共有メモリを操作しようと思っています。
調べてみるとshm_attachとshmop_openという関数があり、どういう違いがあるのか知りたいです。
共有メモリセグメントの作成と共有メモリブロックの作成という違いがあることまではマニュアルを読んで分かったのですが、共有メモリセグメントも共有メモリブロックも分かりません。そもそも共有メモリについてあまり理解していません。
やりたいことは複数のプロセス間で変数を共有することです。具体的には数値を共有してセマフォで排他制御しながらその数値をインクリメントするつもりです。
どちらの関数を使えばいいのか判断出来るような資料の提示(もしくは説明)をお願いします。
php同士でやり取りする場合などであれば、
ブロックの内部構造まで考えなくても済むので、
shm_attachが便利。
読み書きがやや面倒になるので、php同士での通信では少し不便。
他の処理系とやり取りする場合であれば、
shmop_openのほうが逆に扱いやすい。
http://phpspot.net/php/man/php/shmop.examples-basic.html
サンプルソースがここにあります。
すいません両方の関数の比較などだとありがたいのですが・・。
php同士でやり取りする場合などであれば、
ブロックの内部構造まで考えなくても済むので、
shm_attachが便利。
読み書きがやや面倒になるので、php同士での通信では少し不便。
他の処理系とやり取りする場合であれば、
shmop_openのほうが逆に扱いやすい。
なるほどそういうことなのですね。ありがとうございます。
なるほどそういうことなのですね。ありがとうございます。