• ベストアンサー

PHPのプログラムが同時に呼び出された場合について

PHPで同時に同じプログラムが呼び出された時、 WEBサーバでは、同時にプログラムが実行されるのでしょうか? それとも、先に呼び出された処理が終るのを待ってから、 後の処理が実行されるのでしょうか? よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8525/19377)
回答No.2

別々のプロセスとして、並行して同時に実行されます。 なので、特定のファイルの中身を更新しようとすると、処理がバッティングして正常に更新できない場合があったり、1つのプロセスがファイルを占有した状態でアクセスがタイムアウトしたりすると他のプロセスがデットロックする事があります。 並行して同時実行されるので、できるだけスレッドセーフになるように、タイムアウトしても大丈夫なように、いくつ実行されても大丈夫なように、記述しましょう。

susumu_0414
質問者

お礼

回答ありがとうございます。 同時に実行されるんですね。 わかりました。 気をつけて作成します。

その他の回答 (1)

  • singlecat
  • ベストアンサー率33% (139/418)
回答No.1

基本的には同時です。 そうしないとサーバで処理する意味がありません。 ただ、無限に同時処理する事はできませんので、 サーバ側で接続制限などの処理を事前に設定しておきます。

susumu_0414
質問者

お礼

回答ありがとうございます。 同時に起動することがわかりました。 またわからないことがあれば是非教えてください。

関連するQ&A

  • phpで外部プログラムを動かす

    初心者です。基礎的なことですが教えてください。 C言語で書いたプログラムをWebサービスで使いたいと思っています。 C単体でのプログラムをサーバ側で動かしますが、Webと連動させ、Web上のフォーマット から入力した情報をphpで経由し、サーバ側のCプログラムで処理する為に、データを渡し 起動し、結果をまたWeb上に返します。 その場合の phpでデータをCに渡し、プログラムを起動して、結果をCから貰い、Web上に 返すためのやり方を教えて下さい。どんなコーディング、関数になるのでしょうか。 またWebサーバの場合はCのコンパイラは通常どんなコンパイラを使用すれば良いの でしょうか。どんなレンタルサーバ会社でも問題ないのでしょうか。 初心者なので、よろしくお願いします

    • 締切済み
    • PHP
  • ローカルでPHPプログラムが動きません。

    ローカルでPHPプログラムが動きません。 はじめまして、初心者のものです。 よろしくお願いいたします。 現在、VertrigoServをWindowsXPの環境でPHPの勉強をしております。 インストールも無事終わり、簡単はサンプルプログラム程度なら問題なく動作確認しました。 問題なのが、ローカルサーバーからほかのサーバーなどにリクエスト(アクセス)してもデータが取得できないのです。 例えば http://www.nob13.com/docs/php/web こちらにある、ただWebページをゲットして表示するだけのプログラムも動作しません。 (サイトはyahooにて実行しました) しかし、こちらのプログラムの無料のレンタルサーバーなどにアップしたところ、問題なく動作確認することができ、ローカルでのみ動かない状態です。 そこでコマンドでYahooにPINGを飛ばしたところ無事飛ぶことは確認しました。 ネットでいろいろ調べたところ、「TCP接続が許可されてないのでは?」というようなものを見つけました。 そこでTCP接続というのはどうすればよいのでしょうか? またほかに問題点が考えられるようでしたらそちらの問題点と、解決策のご教授をお願いいたします。

    • 締切済み
    • PHP
  • PHP同時処理の負荷について

    PHP同時処理の負荷について教えて下さい。 仮に、検索語句の詳細情報表示PHPスクリプトがあったとします。 (例A) 野菜サイト(yasai.hoge.jp)内にこのPHPスクリプトがあり 魚サイト(sakana.hoge.jp)内にもこのPHPスクリプトがあり 肉サイト(niku.hoge.jp)内にもこのPHPスクリプトがあるとします。 Aさんが野菜サイトで「ネギ」語句を検索実行 Bさんが魚サイトで「鮭」語句を検索実行 Cさんが肉サイトで「牛」語句を検索実行 例Aは、マルチドメインごとにPHPスクリプトを配置しているとします。 (例B) PHPスクリプトは全く同じ内容なのでサーバー内に1つだけ置き 野菜、魚、肉の各サイトから語句が検索実行されると この1つのPHPスクリプトで処理される。これを例Bとします。 この場合、読込速度が遅いのやサーバーに負荷がかかるのはどちらでしょうか? 例Bは、1つのPHPへ処理が集中するので読込が遅くなるのでは??と思ったり 結局サーバーの処理負荷は例Aも例Bも全く同じでは??と思ったりするのですが 実際のところはどうなのでしょうか?  

    • ベストアンサー
    • PHP
  • phpのプログラムで一定間隔で処理をする方法

    phpのプログラムで一定間隔で処理をする方法 phpのプログラムで5秒に1回しか処理しない方法はありますか? 同時に2人がアクセスしても、2人目のアクセスは5秒待ち状態になるようにしたいです。 ユーザー側からのアクセスで実行されるのが前提なので、 制限の掛ける方法で悩んでいます。 どうぞよろしくお願い致します。

    • ベストアンサー
    • PHP
  • 数百ものプログラムを同時に実行するには?

    並行処理の事を考えています。 初期のGoogleは1台のコンピュータで300ものクローラーを同時に動かしていたというようなことをある記事で読んだ記憶があります。 その事を思い出して考えてみたのですが、実装の方法が思いつきません。 例えばCなどのプログラミングでも、PHPなどのスクリプトでも、forkを使用すれば(for文などの中にクローラ用の関数入れてopenMPなどでも出来るかも)可能かもしれませんが、それだと処理が全て終わるまで待たないといけないのと、エラーがあった時の挙動は300も子プロセス使ってると実装が大変じゃないかなと思いました。 逆に、一つプログラムを書いて、cronにて大量に一気に実行する方が簡単じゃないかなと思いました。 でもそれでは終了時に止まって連続的な挙動はしないでしょう。 このような並行処理はどのようにして実行すればいいのでしょうか? forkを使うとしても、いったいどのタイミングで呼び出せばいいのか思いつきません。 アドバイス頂けたらと思います。 クローラーに関する情報が自分の調べ方では出てこなかったのですが、何かいい資料などありましたら、そちらも教えていただけたらありがたいです。 英文サイトなどでも大丈夫です。

  • PHP4スクリプトはSYSTEMユーザで動かない?

    WindowsサーバにApache2があり、PHPで Webアプリケーションを稼動させています。 サーバにはExcelがインストールされてい ます。OLEによりWebアプリからブックを 作成します。 しかし、対象データが多いとタイムアウトに なるため、Cでプログラムを作り、複数の プロセスを同時に走らせて効率化を図り ました。このプログラムをコマンドプロンプト から実行すると、狙い通りに動作し、速度は 改善されました。しかし、これをWebアプリの system関数で実行すると、何もせず即座に 終了します。Cプログラムでログを取って、 調べたところ、CreateProcessは成功して いますが、PHP.exeが起動後即死している ようです。Apacheのアカウントはユーザとの インタフェースを持たないためかと思い、 Cプログラムでユーザを偽装して起動して みました。しかし、PHP.exeはAdministrator アカウントで起動されるのですが、やはり 起動後の即死は相変わらずです。 これをPHP5のPHP.exeで実行すると正常に 動作しました。但し、実際に稼動する環境で PHP5が入る保証はありません。 PHP4では解決できないとなれば、掛け合う 余地はありますが、ダメという論拠が必要に なります。 WebアプリからPHPスクリプトを実行する方法 あるいは実行できない理由をご存知の方は ご教授くださると有り難く存じます。

    • ベストアンサー
    • PHP
  • 長時間かかるPHPプログラムの処理方法。

    長時間かかるPHPプログラムの処理方法。 PHPプログラムを作成したのですが、処理が終わるまでおそらく数時間掛るようなプログラムを作成しました… 普通にURLにアクセスしても途中でストップしてしまいます。 シェルスクリプトをかまして、CRONジョブで処理したら、サーバーの条件によって途中で止まってしまいます。 サーバーはXREAを使用しています。CRONジョブは3分以上の処理はダメなようです。 長時間のプログラムを処理する方法はあるのでしょうか? 専用サーバーを使う必要があるなら、そういった事が可能でサービス的に良いところを教えてくれると助かります。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • Cronで同じ処理を複数同時に実行するには?

    PHPで作ったWebサービスがあります。 ユーザーが100人いたとします。 この100ユーザーそれぞれのデータを、毎日0時(例えば)になると処理をするというCronを作りたいです。 PHPファイルは1ユーザー分の処理をするので、Cronで毎日0時に指定すると1人分の処理しかできません。 ではユーザー毎にCronを100個作るのは得策ではないと思います。 「一つのCron実行で100人分処理すれば?」というご意見もあるかもしれませんが、 1人分の処理が3~30秒かかるので、レンタルサーバーの1実行当たりの動作時間を超えてしまう問題があります。 毎日0時に100人分の処理を実行するのは無理なのでしょうか? そもそも共用のレンタルサーバーレベルでは、100人分の同時処理というのは現実的ではないでしょうか? そうすると、1人ずつ処理していくと、30秒×100人=50分の処理時間が必要になります。 こういう場合はどのように設計すれば良いのでしょうか? どうぞよろしくお願い致します。

    • ベストアンサー
    • PHP
  • phpのこの画像のプログラムについて教えてください

    phpのこの画像のプログラムについて教えてください このプログラムでなぜgoodperfectが出力されるんですか? case10:の前にbreakがないから次の処理がそのまま実行されたというのは わかるんですが case10に条件が該当していないのに perfectも出力されるのはなぜでしょうか?

    • ベストアンサー
    • PHP
  • PHPとjquery

    PHPの内部処理をjqueryを使ってブラウザ上で進捗状況をリアルタイムで見せてくれるようなものは作れますか? jqueryで動的なwebページを作れると聞いての質問なのですが。jqueryは少ししか触っていません 例えば <?php $i = 1; while( $i <= 10 ){ echo "実行中<br>\n"; $i++; sleep(5); } ?> というプログラムがあって、普通に実行したらまとめて10個の"実行中"が表示されるだけですが、これをプログラム処理と同期させてページを更新させること無しに一つづつブラウザに表示させて行くというような処理は可能なのでしょうか?教えてください