JAVA笔记:SSM项目中一些线程安全问题

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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章