有状态对象和无状态对象
对象的有无状态会影响线程安全
有状态对象:有属性,并且可以操作属性值
这种对象,如果是单例模式(全局有且只有一个)则存在多线程安全问题
因为多个线程共享堆内存,此时对该对象的引用,操作使得该对象成为临界区
需要加锁保证同步
spring中这类对象作用域一般声明为Prototype
无状态对象:无属性,或者有属性但是没有操作该属性的方法
这种对象只能被用作读取功能,是线程安全的
判断多线程是否安全,主要是判断方法中是否修改了临界资源,即多个线程共享的对象
对象的有无状态会影响线程安全
有状态对象:有属性,并且可以操作属性值
这种对象,如果是单例模式(全局有且只有一个)则存在多线程安全问题
因为多个线程共享堆内存,此时对该对象的引用,操作使得该对象成为临界区
需要加锁保证同步
spring中这类对象作用域一般声明为Prototype
无状态对象:无属性,或者有属性但是没有操作该属性的方法
这种对象只能被用作读取功能,是线程安全的
判断多线程是否安全,主要是判断方法中是否修改了临界资源,即多个线程共享的对象