私はデフォルトの方法がシングルトンであることを知っています。現在、私のコントローラメソッドでは、データを更新してデータをロックしたいと思います。ユーザーがデータを更新する前に、彼が更新できるかどうかを判断します他のテーブル項目のステータスに変更します。 例:ユーザーAがデータを訪問した場合、データ値を1に更新し、他のユーザーが更新できないことを意味するステータスフィールドを更新してデータをロックします。 。しかし、同時に、ユーザーBのデータを訪問する可能性があります、彼は2にデータ値を更新する可能性があります。私はまた、ユーザーBのファイルを削除することができますか?
コントローラメソッドに同期キーワードを追加する必要がありますか?またはtomcatサーバーまたはspring mvcがこの問題に対処するのに役立っていますか?今私が望むのは、1人のユーザーだけがデータを更新し、1つの使用ファイルを削除できることです。ページに同時にアクセスするユーザーが複数いる場合は、contrlloerメソッドに同期キーワードを追加する必要がありますか?
答えて
一般的にコントローラをマルチスレッド化しないでください。コントローラのメソッドを同期させないでください。また、「デフォルトの方法はシングルトンだということを知っています」 - 何のためのデフォルトの方法ですか?コントローラは一般的にシングルトンである必要はありません。コントローラはビジネスロジックを処理すべきではありません。それがモデルの仕事(「MVC」の「M」)です。記述したすべてのテーブル・ロジックを処理するリソース・マネージャーまたはコンポーネントは、おそらくマルチスレッド化すべきではありません。単一スレッドのリソースマネージャーははるかに混乱が少ないです。そしてそれはシングルトンである必要はありません。それらのいずれかをインスタンス化するだけです。 (リソースマネージャは、複数のリソースを管理するなど、複数のインスタンスを必要とする場合があります)
あなたのコードを示す必要があります。
コントローラがサービスを呼び出す、つまり、私はコントローラまたはサービスを追加するためにsychronizedキーワードを追加することを意味します。コントローラは一般的にマルチスレッド化すべきではありません。多くのユーザが同時にウェブサイトを訪れますが、この種の現象はかなり正常です。 – flower
あなたのポイントはどうですか? –
- 1. 同時にアクセスするSpring Singletonインスタンスが複数ある場合
- 2. この場合、複数のスレッドが同じ変数にアクセスする場合は、mutexロックが必要ですか?
- 3. このコードに同期を追加する必要はありますか?
- 4. この場合、同時アクセスから変数をロックする必要がありますか?
- 5. 非同期メソッドを待つ必要がありますか?
- 6. 非同期メソッドを待つ必要がありますか?
- 7. 同じ/異なるインスタンスを複数のViewModelが同じドメインオブジェクトに要求する必要がありますか?
- 8. Web.configファイル内に複数のページに複数の要素を追加する必要があります
- 9. 複数のスレッドが同時に同じ関数にアクセスする
- 10. 同じページまたは同じサイトに複数のブートストラップカルーセルが必要ですが、異なるサイズにする必要があります。
- 11. は、関数内に条件がある場合は、 `return`リテラルを追加する必要があります
- 12. 揮発性変数には同期アクセスが必要ですか?
- 13. シングルトンメソッドを同期する必要がありますか?
- 14. OnTerminateを同期する必要がありますか?
- 15. レプリカセット内のmongodbノードは時間同期する必要がありますか?
- 16. 私はこれを同期する必要があります
- 17. tomcatが同時に複数の同時要求を処理する方法はありますか?
- 18. 同期アクセスのみの場合、揮発性が必要です
- 19. 同じページに複数のiScroll要素があります
- 20. 複数のページにまたがるPHPフォームは、ユーザーが後ろ向きに移動する場合に事前に入力する必要があります
- 21. 同時に要素をHashMapに同時に追加する
- 22. ReferenceQueueで同期する必要がありますか?
- 23. 複数のページセッションを一緒に追加する必要がありますか?
- 24. アダプターに複数のフラグメントを追加する必要がありますか?
- 25. ArrayBlockingQueueラッパーメソッドを同期させる必要がありますか?
- 26. jQuery:同じリンクを複数のページでハイライト表示する必要がある場合、ナビゲーションリンクにアクティブなクラスを追加する方法は?
- 27. ユーザーが同じページにアクセスする場合、URLを無効にすることはできますか?
- 28. 文字列の場合、どのように同期を使用する必要がありますか?
- 29. この操作では、ページを非同期にする必要があります(Async属性をtrueに設定する必要があります)。
各ピリオドとコンマの後にスペースを挿入すると、あなたの質問は読みやすくなります。 –