忍者ブログ

カウンター

プロモーション

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

AntinomyMy の実験室

   私のWEBアプリ実験室です!

ブログ内検索

楽天でお買い物

twitter

最新トラックバック

最新コメント

忍者アナライズ

ウェザーニュース

バーコード

本を買う

アクセス解析

Google+

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


  • 2024/04/19 23:17

PHP のNon Thread Safe とThread Safe の違い

Apache と PHP の調べ物

Non Thread Safe とThread Safe の違いについて書きます。

 これはNon Thread Safe とThread Safe の違いって何か?なんですが、
簡単に言うとCPUの中で同時に動いている別々の処理機構であるスレッドが、
1つの動作中のプログラムを効率よく処理しようとしたときに不具合を起こさない様に作られたものを
「Thread Safe」といい、1つのプログラムが同時にCPU内のスレッドを使う事に対応していないのが
「Non Thread Safe」と言う事になる様です。

 では厳密にPHP にはその2種類の「Non Thread Safe」と「Thread Safe」が
存在しているのですが、しかし私には、これらの違い指し示す所が厳密にどうなのか、
私には見当が付きませんでした。

 なのでファイルを比較したところ、見当が付きました。
------------------------------------------------------------------
[1] : php-5.3.2-nts-Win32-VC6-x86|| [2] : php-5.3.2-Win32-VC6-x86           
------------------------------------------------------------------
 |..                         ---| |..                          ---

L|dev                        ---|R|dev                         ---

L|ext                        ---|R|ext                         ---

 |extras                     ---| |extras                      ---

 |PEAR                       ---| |PEAR                        ---

 |go-pear.bat                 90| |go-pear.bat                  90

 |icudt36.dll         10,166,272| |icudt36.dll          10,166,272

 |icuin36.dll            954,368| |icuin36.dll             954,368

 |icuio36.dll             53,248| |icuio36.dll              53,248

 |icule36.dll            192,512| |icule36.dll             192,512

 |iculx36.dll             45,056| |iculx36.dll              45,056

 |icutu36.dll            106,496| |icutu36.dll             106,496

 |icuuc36.dll          1,064,960| |icuuc36.dll           1,064,960

 |install.txt             86,472| |install.txt              86,472

 |libeay32.dll         1,069,056| |libeay32.dll          1,069,056

 |libpq.dll              464,172| |libpq.dll               464,172

 |license.txt              3,286| |license.txt               3,286

 |news.txt               279,571| |news.txt                279,571

 |phar.phar.bat               39| |phar.phar.bat                39

L|pharcommand.phar        53,212|R|pharcommand.phar         53,212

L|php-cgi.exe             45,124|R|php-cgi.exe              49,223

L|php-win.exe             28,740|R|php-win.exe              28,743

L|php.exe                 28,736|R|php.exe                  28,739

 |php.gif                  2,523| |php.gif                   2,523

 |php.ini-development     70,515| |php.ini-development      70,515

 |php.ini-production      70,800| |php.ini-production       70,800

L|php5.dll             5,476,417| |                             

L|php5apache.dll          32,839|R|php5apache.dll           36,938

 |                              |R|php5apache2.dll          36,939

 |                              |R|php5apache2_2.dll        36,941

 |                              |R|php5apache2_2_filter.dll 36,948

 |                              |R|php5apache2_filter.dll   36,946

L|php5apache_hooks.dll    49,229|R|php5apache_hooks.dll     53,328

L|php5embed.lib          785,796|R|php5embed.lib           796,892

 |                              |R|php5nsapi.dll            32,841

 |                              |R|php5ts.dll            5,648,454

 |pws-php5cgi.reg            135| |pws-php5cgi.reg             135

 |pws-php5isapi.reg          139| |pws-php5isapi.reg           139

 |readme-redist-bins.txt  20,693| |readme-redist-bins.txt   20,693

L|snapshot.txt               952|R|snapshot.txt                955

 |ssleay32.dll           212,992| |ssleay32.dll            212,992
------------------------------------------------------------------
[1] : php-5.3.2-nts-Win32-VC6-x86 の方が、「Non Thread Safe」であり、
[2] : php-5.3.2-Win32-VC6-x86 の方が、「Thread Safe」です。

 このファイル比較を見てわかったことは、Apache2系のdll が「Non Thread Safe」の方には
有りません。
 当たり前といえば当たり前なのかもしれませんが、Apache2系がマルチスレッドでの動作に
対応したApache だったはずなので、マルチスレッド対応=「Thread Safe」であり、
もっと言い換えるなら、「Thread Safe」=マルチスレッド対応=Apache2も対応 と言う意味で
とらえて、もっと名前の意味だけで種類を考えるのならば、PHP のバージョンの話ではあるが、
Non Thread Safe とThread Safe の違いは、Apache のバージョンの違いであることと
思っておけば良いと思う。

○「Thread Safe」=マルチスレッド対応=Apache2系も対応
○「Non Thread Safe」=マルチスレッド非対応=Apache1系のみ

 また前回ブログにも載せた
○IIS を使うならVC9 でコンパイルされたパッケージ
○Apache (2.2迄)を使うならVC6 でコンパイルされたパッケージ
を使う様にPHP のパッケージは構成されている。
(VCコンパイラのバージョンによってApache かIIS のどちらに使うかの
推奨?推薦?バージョンが決まっているっていた時代の話です。
今はもっとVC11 などもありますし、この記事を修正している今のPHPの最新バージョンは
7.2.2などがありますので、斜線をあえて引いておきました。)




ちょこっとリンク:
スレッドセーフの説明 



追伸:
上記の記事は古くなった!!!

追記の内容は
Apache とPHP のバージョンについて(2014年3月31日)
に書きました。

拍手[3回]

PR


  • 2010/07/12 12:13

コメント一覧

  • お名前
  • Email

  • コメント

  • Vodafone絵文字 i-mode絵文字 Ezweb絵文字
  • パスワード
[PR]