关于static修饰的方法的线程安全问题
来源:7-1 课程管理功能开发

超人迪加123
2020-12-16
老师您好,
我们这个项目中有一些类的方法都是使用static修饰的,比如:
CopyUtil.java,UuidUtil.java,ValidatorUtil.java这些类他们的方法几乎都是静态方法,当多个线程同时操作这些类的静态方法的时候,虽然这些类里面没有共用的常量,但还是想了解一下:
1.
这种情况线程是安全的吗?
2.
这些工具类的静态方法在多线程下同时或非常接近的时间内操作,线程是安全的吗?
如果把CopyUtil.java,UuidUtil.java,ValidatorUtil.java的静态方法都改为实例方法,使用时先实例化,再调用相关的方法处理,这个能保证线程的安全吗?
希望老师能解答一下,给老师添麻烦了。
写回答
1回答
-
安全的,比如CopyUtil,我封装的是BeanUtils.copyProperties,这个方法本身也是静态的,如果有问题,用的人那么多,影响就大了。
方法可以理解成一种操作,虽然操作是一样的,但是操作的对象是不一样的(没有静态的变量),不会有问题。
改成非静态,用组件注入的方式也是可以的
112020-12-17
相似问题