たとえば、私のアプリケーションには、同じコレクション オブジェクト (List など) を読み込もうとしている n 個のスレッドがあるとします。競合状態やデッドロック、または同様の問題はありますか? つまり、読み取り専用操作のためにリストをロックする必要がありますか?
2 に答える
ユーザー数を制限するかどうかは、完全にあなた次第です。通常、WindowsでExcelファイルを表示する場合、ネットワーク全体で共有されていると、一度に最大10人がファイルを開いて読み取ることができます。この数は任意の数に増やすことができますが、それに関しては制限はまったく必要ありません。制限するかどうかは、プログラマーとしてのあなたの願いです。覚えておく必要がある唯一のことは、ファイルがサーバー上にあり、毎秒100万の読み取り要求が来る場合、制限が課されていない場合、システムの速度が低下し、速度が低下しない可能性があるということです。誰にでも仕えることができます。代わりに、一度に100人のユーザーしか読み取ることができないというロックを課すと、システムが過負荷にならないようにすることができます。これは、最悪のケースを考慮して説明しているリアルタイムのシナリオです。
でも、勉強のためだけにお願いしているのなら、必須ではないと思います。n人のユーザーが同じファイルを開いて読み取りを行っている場合、理想的には、n人のユーザー全員にコレクションオブジェクトの読み取りへのアクセスを許可できます。同期メカニズムは必要ありません。同期がない場合、デッドロックなどは発生しません。
これがあなたの混乱を取り除くことを願っています。ありがとう。