【发布时间】:2014-09-16 03:05:48
【问题描述】:
关于这个问题,我有一个子问题
Are non-synchronised static methods thread safe if they don't modify static class variables?
如果我在 Singleton 类中定义了这个方法
public static Date getDateDiff(Date a, Date b){
return a-b;
}
如果两个线程同时并发调用这个方法,传递不同的a,b,那么会得到正确的结果吗?
我的理解是他们应该得到,因为每个人都在传递不同的日期对象,其他人无法访问......
在什么情况下会因为覆盖 Date 对象而得到错误的结果?
【问题讨论】:
-
在您看来,链接问题与您的问题有什么区别?我没有看到。
-
@usr 不同之处在于他的问题中传递的参数是可变的。
-
Tomasz 对链接问题的回答回答了这个问题,如果传入的对象是可变的,那么其他线程可以同时篡改它们。我看不出这个问题与链接的问题有何不同。
-
其实我没有在那个问题中找到答案,所以我决定更简单、更具体……除了可以帮助其他人
标签: java multithreading methods static