http://d.hatena.ne.jp/yutakikuchi/20120521/1337557316
ブログ中では、「マルチスレッド」という表現がされていますが、マルチプロセスです。
fork って、Unix 系 OS のシステムコールなんで、Windows じゃ使えません。
http://www.php.net/manual/ja/intro.pcntl.php
注意: この拡張モジュールは Windows 環境では利用できません。
http://techblog.yahoo.co.jp/architecture/api1_curl_multi/
先のページからたどれるページです。
特に、どの動作環境で、というような記載はマニュアルにはありません。
ページに記載されているサンプルは、割とシンプルですが、オプションがいろいろありそう。
http://techblog.ecstudio.jp/tech-tips/php-multi.html
このページに書かれているソースだと、待ち合わせの仕方が違うんですよね。
curl_multi_exec のループが二回ある...
あー、二番目の方はマニュアルのサンプルがべースなんですね。
とりあえず、第二引数が 1 の間は呼び続ける、ということで良いのかな。
OS が Windows 系なら cURL を使うしかありませんが、URL で指定した内容を読み取るだけしかできないので、例えば、それぞれの応答時間を記録しておきたい、だとか、file_get_contents 以外のことを付け加えたくなると、pcntl_fork を使うことになると思います。
ブログ中にも記載がありますが、fork はプロセスを生成するので、それなりのコストがかかります。コストと言っても、多少ですけど、百回ループで呼び出したときに、全部同時にヨーイドン、というわけにはいきません。
また、プロセス数の制限もありますから、並列に動かしたい処理の数によっては、制限を緩める必要があります。
後は、お手軽なところで、一回だけ file_get_contents を呼び出すスクリプトを書いておいて、別のスクリプトから system() で、バックグラウンド実行になるような指定をして呼び出す、という感じでしょうか。
負荷テスト用のツールを使うのがお手軽だと思います。
たとえば、 JMeter とか。
http://jmeter.apache.org/
ツール自体はJAVAでできてますが、
ブラウザの動作をシミュレートして負荷をかけれます。
>10人の人間が10回のF5を行い100回の負荷としたいと思っています。
このツールで可能です。
もちろん1台のクライアントから可能です。