单例类线程中的并发方法访问是否安全?
我正在使用Spring框架(MVC),默认范围为Singleton。
例如,如果我的Web应用程序的控制器是Singleton类,那么声明访问Model / Business / DB类的方法是否是线程安全的,如果同时由多个线程访问?如何在Controller中调用DB以便从这些方法访问/更新数据库?
需要指导,我会对此问题提出任何帮助/建议。
答案 0 :(得分:9)
不,Singleton不保证线程安全。你必须自己管理。
做到这一点的最好方法是让Singleton成为无国籍人。如果没有共享状态你就没事了。