SpringMVC中的控制层的线程安全?
1)控制层对象默认是单例设计
2)存在多线程共享数据集
3)共享数据集上的操作是非原子操作满足以上三个条件时,SpringMVC就可能会出现线程不安全.
FAQ?
1)SimpleDateFormat对象是一个线程安全对象吗?不是
2)SimpleDateFormat对象如何保证在SSM项目中是安全的.
2.1)每次使用都创建新的对象(一般在方法内部定义并创建)
2.2)多线程共享一个SimpleDateFormat对象,然后借助synchronized关键字保证线程安全.
2.3)每个线程一个SimpleDateFormat对象,借助ThreadLocal对象实现.
ThreadLocal说明:
ThreadLocal 类提供了这样一种机制,能够将某个对象绑定(set)到当前线程,也能构从当前线程获取(get)某个对象,不需要了,还可以从当前线程移除(remove)这个对象.
FAQ?
1)JDBC项目中的Connection对象可以共享吗?
1.1)不可以,会存在线程安全问题
1.2)如何保证线程安全呢?(借助ThreadLocal实现每个线程一个Connection.