关于static修饰的方法的线程安全问题

来源:7-1 课程管理功能开发

超人迪加123

2020-12-16

老师您好,
我们这个项目中有一些类的方法都是使用static修饰的,比如:
CopyUtil.java,UuidUtil.java,ValidatorUtil.java这些类他们的方法几乎都是静态方法,当多个线程同时操作这些类的静态方法的时候,虽然这些类里面没有共用的常量,但还是想了解一下:
1.
这种情况线程是安全的吗?
2.
这些工具类的静态方法在多线程下同时或非常接近的时间内操作,线程是安全的吗?

如果把CopyUtil.java,UuidUtil.java,ValidatorUtil.java的静态方法都改为实例方法,使用时先实例化,再调用相关的方法处理,这个能保证线程的安全吗?

希望老师能解答一下,给老师添麻烦了。

写回答

1回答

甲蛙

2020-12-17

安全的,比如CopyUtil,我封装的是BeanUtils.copyProperties,这个方法本身也是静态的,如果有问题,用的人那么多,影响就大了。

方法可以理解成一种操作,虽然操作是一样的,但是操作的对象是不一样的(没有静态的变量),不会有问题。

改成非静态,用组件注入的方式也是可以的

1
1
超人迪加123
非常感谢!
2020-12-17
共1条回复

Spring Cloud+ Vue前后端分离开发企业级在线视频系统

全网稀缺课程 市场热门项目+主流框架 一课掌握前后端技术

1743 学习 · 1697 问题

查看课程