くだらねえ質問はここに書き込め! Part 197

このエントリーをはてなブックマークに追加
358login:Penguin
Linux上での同時並行処理について質問させてください。

初期のGoogleでは4台のクローラでそれぞれ300のダウンロードを並行して行っていたらしいのですが、
こういった同時並行処理はどのようにすれば出来るのでしょうか?

例えば、BashやPHP等のスクリプトを書くと、includeやif文等の分岐などでも、前の処理や呼び出したファイルの処理が完了しないと次に進みません。
つまり、aの処理が終わった瞬間にb、cが同時に呼び出されてそれぞれ処理が自動的に行われるといった事にはなりません。
まずbが呼ばれたら、bが実行され、その後に上から下にcが実行されます。

端末を5個開けば、5個のシェルやスクリプトを実行できますが、
端末を300も開くとかは現実的ではないと思います。

自分としては特に、例えばデータベースに情報を格納した瞬間に、一つはデータの解析、
もう一つはWeb用に出力するための整形、設定値リストのキャッシュ更新、など
トリガーのように同時に複数の処理が自動起動するようにしたいと考えております。
また、上記のGoogleの例のように、同時に300ものダウンロードを同時に行うのには
どのようにしているのかも疑問に考えております。
申し訳ないですが、アドバイスを頂けないでしょうか?