BLOGTIMES
2007/09/19

PHPでマルチタスク?

 
このエントリーをはてなブックマークに追加

PHPにはスレッドがないので、WebAPIなどを呼ぶときには平行してリクエストを投げる方法がないので時間がかかるのは仕方がないと思っていたんですが、stream_select()/socket_select()という関数を使えばselect() システムコールを使った並行処理ができるみたいです。

IBM PHP V5 でマルチタスク動作のアプリケーションを開発する - Japan

PHP はスレッド動作をサポートしていません。それにもかかわらず、また私が話をした大部分の PHP 開発者が信じていることとは大いに異なり、PHP アプリケーションはマルチタスク動作を行えるのです。まず、PHP プログラミングで「マルチタスク動作」と「スレッド動作」が何を意味するのかを、できるだけ明確にすることから始めましょう。

PHP5でないと使えないような記述がありますが、マニュアルの対応表記は(PHP 4 >= 4.3.0, PHP 5)となっているのでPHP4.3以降であれば利用可能なようです。これを使うとNP_MetaTagsとかNP_Moblogは結構高速化できたりするかもしれません。まぁ、NP_Moblogはこれを利用することを前提にかなり書き換えなければならないとは思いますが、時間ができたら挑戦してみようかなと思います。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/2198
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン