問題タブ [static-members]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
3833 参照

asp.net - ASP.NET/静的クラスの競合状態?

動的コンテンツがたくさんあるASP.NETアプリケーションがあります。内容は、特定のクライアントに属するすべてのユーザーで同じです。リクエストごとに必要なデータベースヒットの数を減らすために、クライアントレベルのデータをキャッシュすることにしました。データを保持する静的クラス( "ClientCache")を作成しました。
このクラスで最もよく使用されるメソッドは「GetClientData」です。これは、特定のクライアントに保存されているすべてのデータを含むClientDataオブジェクトを返します。ただし、ClientDataは遅延してロードされます。要求されたクライアントデータがすでにキャッシュされている場合、呼び出し元はキャッシュされたデータを取得します。それ以外の場合は、データがフェッチされ、キャッシュに追加されてから、呼び出し元に返されます。

最終的に、ClientDataオブジェクトがキャッシュに追加された行のGetClientDataメソッドで断続的なクラッシュが発生し始めました。メソッド本体は次のとおりです。

例外テキストは常に「同じキーを持つオブジェクトがすでに存在します」のようなものです。もちろん、クライアントがすでに存在する場合は、クライアントをキャッシュに追加できないようにコードを記述しようとしました。

この時点で、競合状態が発生し、メソッドが2回同時に実行されている可能性があります。これにより、コードがどのようにクラッシュするかを説明できます。しかし、私が混乱しているのは、メソッドを2回同時に実行する方法です。私の知る限り、ASP.NETアプリケーションは一度に1つの要求しか処理しません(そのため、HttpContext.Currentを使用できます)。

それで、このバグは、クリティカルセクションにロックをかける必要がある競合状態である可能性がありますか?それとも私はもっと明白なバグを見逃していますか?

0 投票する
5 に答える
23513 参照

c++ - static vs extern "C"/"C++"

静的メンバー関数と extern "C" リンケージ関数の違いは何ですか? たとえば、C++ で「makecontext」を使用する場合、関数へのポインターを渡す必要があります。「makecontext」はCであるため、Googleはextern「C」リンケージを使用することをお勧めします。しかし、静的を使用しても同様に機能することがわかりました。私は運がいいのか、それとも…

EDIT:静的メンバーバージョンが機能しないコンパイラまたはアーキテクチャを表示できますか(コンパイラのバグではありません)?

0 投票する
9 に答える
2139 参照

java - 静的変数とメソッド

次のように設定されたクラスに出くわしました:

静的メソッドに関する私の理解では、それらが定数であり、変更されない限り、クラス変数を使用しないでください。代わりに、パラメーターを使用する必要があります。私の質問は、MyClass.doSomething() を実行して複数回呼び出されたときに、これが壊れないのはなぜですか。うまくいかないように思えますが、うまくいきます。if ステートメントを一度だけ渡します。

では、なぜこれが壊れないのか、誰かが私に説明できますか?

0 投票する
9 に答える
489 参照

c++ - 各 C/C++ ソース ファイルを登録して、使用されるソースのランタイム リストを作成する

デバッグおよびロギング ライブラリの場合、実行時に、プロジェクトがコンパイルおよびリンクしたすべてのソース ファイルのリストを見つけられるようにしたいと考えています。各ソース ファイルに何らかの種類のヘッダーを含めることを想定しており、プリプロセッサ __FILE__ マクロはそのファイルの文字定数を提供できるため、各ファイルからその情報を何らかの形で「ブロードキャスト」して、ランタイム機能。

問題は、これをエレガントに行う方法であり、特に C++ ではなく C から実行できるかどうかです。C++ では、おそらく、ファイル名のリストを保持するための静的ストレージを持つクラスを作成しようとします。各ヘッダー ファイルは、そのクラスのファイル ローカルな静的インスタンスを作成し、作成時に FILE ポインターなどをクラスの静的データ メンバーに、おそらくリンク リストとして追加します。

しかし、これが C で機能するとは思いません。C++ でさえ、各要素が作成されることが保証されているかどうかはわかりません。

0 投票する
2 に答える
6015 参照

objective-c - Objective-C クラス メソッドのオブジェクト保持動作

クラス メソッドに渡されたオブジェクトを保持および解放するためのベスト プラクティスは何ですか?

たとえば、次のように宣言された「クラス変数」があるとします。

...これを行うのは正しいことです:

...これには、呼び出し元が、途中で解放されないように、param でゼロ以外の保持カウントを維持する必要があるという欠点があります。あるいは、これを行うこともできます:

dealloc...これには、対応するクラスレベルの呼び出しがないとメモリリークが発生するという欠点があります。それとも、この種のオブジェクトの有効期間をより従来の方法で管理するシングルトン クラスを使用して、この種のクラス変数ごまかしを完全に回避する必要がありますか?

シングルトン インスタンスの作成に関する Apple のドキュメントは次のとおりです。

私が取り組んでいるコードは、非常に洗練された (しかしまだ新しい) Objective Resource プロジェクト ( http://www.iphoneonrails.com/ ) です。

0 投票する
9 に答える
212904 参照

php - 静的変数の初期化方法

私はこのコードを持っています:

次のエラーが表示されます。

解析エラー: 19 行目の /home/user/Sites/site/registration/inc/registration.class.inc に構文エラー、予期しない '('、')' が必要です

だから、私は何か間違ったことをしていると思います...しかし、そうでない場合、どうすればこれを行うことができますか? 通常の文字列で mktime を変更すると、機能します。だから、私はそのようにそれを行うことができることを知っています..

誰にもいくつかの指針がありますか?

0 投票する
2 に答える
3045 参照

asp.net - IISで一度に複数の要求によって静的メンバー変数にアクセスされないようにするにはどうすればよいですか?

IISがスレッドで静的変数をどのように処理しているかを理解するのに問題があります。私の理解では、IISに4つのワーカープロセスがあり、4つの要求を同時に処理でき、4つの別々のスレッドがWebサイトを実行しているのと同じであると常に理解しています。静的変数は、個々のスレッドごとに保持されます。私が少し混乱している理由は、接続とキャッシングトランザクションを管理するスコープを作成したためです。アプリをテストしているときは問題はありませんが、コンパイルして2つの異なる場所から同時にヒットした後、ある種の競合が発生しているようです。さて、これらのワーカープロセスが分離しているとしたら、なぜそうなるのでしょうか。1つのワーカースレッドで同時に複数のリクエストを処理できますか?これらの機能を管理するオブジェクトのエスカレーションを処理するためにこれらの静的メンバーに保持されている一意のIDがあり、同じオブジェクトにアクセスしようとしているように見えるため、これは非常に重要です。

これは、x64マシン上のVistaのIISサーバーで実行しています。

編集

単一のリクエストでスレッドを介して永続化する必要がある値については、これらの値を入れてWeb.HttpContext.Current.Items、うまくいくようです。

<ThreadStatic()>使用できますが、リクエストプロセスの終了時に使用できない場合があります。私が持っている1つのモジュールでは、そのスレッドがすでにcahcingサーバーの設定をロードしているかどうかを示すために変数でのみ使用されます。trueの場合、トレッド(asp.netではない)はキャッシュサーバーからデータをフェッチする準備ができています。

0 投票する
6 に答える
4755 参照

c++ - C++ の静的クラス データと匿名名前空間

プライベートな静的データ メンバーを持つクラスが時々あります。これらを実装ファイルの名前のない名前空間の静的変数に置き換える必要があるかどうか、現在議論しています。これらの変数をインライン メソッドで使用できないこと以外に、他に欠点はありますか? 私が見る利点は、クラスのユーザーからそれらを完全に隠すことです。

0 投票する
4 に答える
16054 参照

asp.net - 何が良い: 静的​​変数 VS Asp.NET アプリケーション セッション?

ASP.NET Web アプリケーション内のすべてのスレッド/セッションで、クラスや変数などのリソースを共有したいとします。何が良いですか?

1)その静的変数へのスレッドセーフアクセサーを持つ静的変数?

2) それとも ASP.NET アプリケーション セッション変数ですか?