ステートレス シングルトンについて質問があります。状態を持つシングルトンについても質問があります。
ステートレス シングルトン サービスは、スケーラビリティを支援する優れた方法です。私が維持しているプロジェクトを設計したプログラマーは、「それはただのコード」(Singleton クラス、つまり) であるため、並行性の問題は発生しないと基本的に述べています。クラスにクラスレベル変数がないことを意味します。それは単なる方法です。
ここで、C# に関する私の知識が少し曖昧になります。別々の Web リクエストを介して 2 人のユーザーが同時にステートレス シングルトンにヒットするという問題はありますか? それらは同時に同じ方法で終わる可能性がありますか? それは可能ですか?もしそうなら、それは彼らがそのメソッドで同じローカル変数を使用していることを意味しますか? 大混乱のように聞こえるので、それは起こり得ないと思います。どういうわけか、メソッド呼び出しが他のユーザーによって汚染されることは決してないと仮定しています。
私はこれについて多くの同僚に尋ねましたが、誰も答えを知りません。したがって、それはトリッキーな問題です。
シングルトンに関する私の一般的な質問は、2 人以上の同時ユーザーがシングルトンのパブリック プロパティを読み取ることに問題があるかどうかです。私は読書にしか興味がありません。プロパティがロック ブロック内にない場合、ある種の同時実行例外が発生する可能性はありますか? または、同時読み取りは安全ですか? lock
このキーワードは、必要のないパフォーマンス ヒットであるため、実際には使用したくありません。
ありがとう