[PHP-users 32354] Re: スレッドとstatic変数の関係について
Tomoyuki Asakawa
tom @ asakawa.ne.jp
2007年 6月 30日 (土) 14:55:02 JST
あさかわ
なんか、すげー考え過ぎの様な気がします。
On 2007/06/30, at 13:12, A.HASEGAWA wrote:
> PHPのWebアプリ上(複数プロセス/マルチスレッド環境)で、
> 単一のHTTPリクエスト内であれば、安心してstatic変数
> が利用できるかどうか、
ご心配なされてるのは、static変数が、安心して利用できるかど
うかですけも
そんな事を、心配すると、普通の変数すら、スレッドセーフかどうか
心配になってしまいませんか?
すくなくとも、PHPの文法上(言語仕様)で提供されてる基
本機能が
スレッドセーフで無かったならば、それは、「バグ」だと思います。
PHPの文法上ではなく、オマケとして、提供されてる、ライブラリ
が、スレッドセーフに出来ていないかもしれないという
不安は、みんな持っていると思う。
それは、PHPがスレッドセーフではないという意味ではなく
PHPでスレッドセーフではない、プログラムを書く事ができてしまうか
らです。
しかし、標準提供されてる、ライブラリぐらいは、スレッドセーフだと
思います。
でも、たとえば、
date_time_set()
date_date_set()
なんてのは、どう考えても、実行結果は、スレッド間で競合します。
しかし、これをもって、PHPが、スレッドセーフではないとは言
わないと思う。
ところで
>JavaのWebアプリ(Servlet)ではクラスのインスタンス
変数さえも
>場合によっては競合をおこしてしまい、バグの原因になる事もありま
す。
これって事実ですか?
仮に事実としても、これも、javaの仕様の問題ではなく
その、クラスの実装上の問題ではないのですか?
そうじゃないと、オブジェクト指向言語の根幹に関わる話になって
javaなんて使えねー!になってしまうとおもいます。
PHP-users メーリングリストの案内