gpt4 book ai didi

Java静态线程安全

转载 作者:太空宇宙 更新时间:2023-11-04 06:38:58 25 4
gpt4 key购买 nike

关于这个问题,我有一个子问题

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 对象而得到错误的结果?

最佳答案

是的,两个线程都会得到正确的结果。错误结果的条件是,如果存在任何其他非线程安全代码,其中另一个线程可能正在修改由其他线程之一传递的 a 或 b。就像您链接到的问题中的其他答案一样,如果 a 或 b 与另一个线程共享,并且它们在另一个线程使用它时修改它,您可能会遇到问题。

关于Java静态线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24935753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com