スレッド表示 | フラット表示〕 全トピック 920 件中 392 番目 次≫ ≪前

スレッドセーフ??(global変数)

created: 2005-08-10 10:35 | modified: 2005-08-10 21:51 | reply: 2

[2442] スレッドセーフ??(global変数)

user: sasaki | created: 2005-08-10 10:35
失礼します。

PHPのスレッドセーフについて?ですが、
例えばglobal変数を用いたときに、他のスレッドと変数を共有してしまうといった減少は起こりうるのでしょうか?

マニュアルには、「PHPでは、グローバル変数は、関数の内部で使用する場合、関数の内部でグローバルとして宣言する必要があります」とあり、特に明記されていませんでしたが・・・
Javaではstatic変数は他のスレッドと共有してしまうので、ふと不安になり投稿させていただきました。

稚拙な質問で申し訳ありませんが、どなたかご教授いただけたら幸いです。
reply: 2445 返信 編集 削除

[2445] Re. スレッドセーフ??(global変数)

user: ゆうじ | created: 2005-08-10 18:20
こんばんわ。

PHPでは個々のスレッドが完全に独立しています。
唯一スレッドをまたぐ変数はセッション変数くらいのもので
それでもクライアントをまたぐことはありません
セッション変数以外の変数は間違っても共有されることはありません。


> Javaではstatic変数は他のスレッドと共有してしまうので・・

PHPはスレッド間で共有する方が難しいのでこれには驚きです。
PHPでいうスレッドは、1回のHTTPリクエストにあたりますので
反対に共有したい場合にはファイルやデータベースを使って
自前でその仕組みを書く必要があるくらいです。

このあたりアプリケーションベースで生まれたJavaと
Webベースで生まれたPHPとの違いでしょうね。
Parent: 2442  reply: 2448 返信 編集 削除

[2448] 有り難うございました。

user: sasaki | created: 2005-08-10 21:51
ゆうじ 様。

とても丁寧なお返事有り難うございました。
と、同時にもっと自分でも勉強しなければいけないなと思わされました・・・

本当に有り難うございました!!
Parent: 2445  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 392 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑