4 个解决方案
#1
如果不是在线程中操作,对于访问没问题,但是对于后续的操作,这个值就是不确定的了,很有可能已经不是你要的值了
#2
那么我们经常使用DbHelperSQL帮助类它定义的都是静态方法的是否意味着也会有问题?
#3
只要你遵循“迪米特法则”法则编写就可以
所以基于上面的原则,你的提问“场景是这样的一个业务类的方法是静态的并定义了一个形参,方法内部读取该参数并进行逻辑计算等,那么在多个用户访问并调用该静态方法时是否会出现读取参数值冲突问题”
答案是不会冲突,因为他是外部传递进来的,不是公用的资源。(如果你依赖的是公用资源那就另外一说,公用资源比如相同的对象,相同的文件,相同的静态变量,那就是非线程安全的东西)
所以基于上面的原则,你的提问“场景是这样的一个业务类的方法是静态的并定义了一个形参,方法内部读取该参数并进行逻辑计算等,那么在多个用户访问并调用该静态方法时是否会出现读取参数值冲突问题”
答案是不会冲突,因为他是外部传递进来的,不是公用的资源。(如果你依赖的是公用资源那就另外一说,公用资源比如相同的对象,相同的文件,相同的静态变量,那就是非线程安全的东西)
#4
这得看他们依赖什么,如果这些方法里面依赖了全局性静态属性,那么这些静态方法就是非线程安全的(如果代码本身没有做其他线程保护的话)
#1
如果不是在线程中操作,对于访问没问题,但是对于后续的操作,这个值就是不确定的了,很有可能已经不是你要的值了
#2
那么我们经常使用DbHelperSQL帮助类它定义的都是静态方法的是否意味着也会有问题?
#3
只要你遵循“迪米特法则”法则编写就可以
所以基于上面的原则,你的提问“场景是这样的一个业务类的方法是静态的并定义了一个形参,方法内部读取该参数并进行逻辑计算等,那么在多个用户访问并调用该静态方法时是否会出现读取参数值冲突问题”
答案是不会冲突,因为他是外部传递进来的,不是公用的资源。(如果你依赖的是公用资源那就另外一说,公用资源比如相同的对象,相同的文件,相同的静态变量,那就是非线程安全的东西)
所以基于上面的原则,你的提问“场景是这样的一个业务类的方法是静态的并定义了一个形参,方法内部读取该参数并进行逻辑计算等,那么在多个用户访问并调用该静态方法时是否会出现读取参数值冲突问题”
答案是不会冲突,因为他是外部传递进来的,不是公用的资源。(如果你依赖的是公用资源那就另外一说,公用资源比如相同的对象,相同的文件,相同的静态变量,那就是非线程安全的东西)
#4
这得看他们依赖什么,如果这些方法里面依赖了全局性静态属性,那么这些静态方法就是非线程安全的(如果代码本身没有做其他线程保护的话)