gpt4 book ai didi

java - SimpleDateFormat 的 ThreadLocal 变量(或)新的 SimpleDateFormat - 正确吗?

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

我遇到this article并感到困惑

在我们的项目中,有几个地方我们使用 ThreadLocal 来构造 ThreadLocal 变量

在其他一些地方,我们在私有(private)本地方法中构造了一个新对象 SimpleDateFormat。

示例,

private Date getConvertedDate(String Date){
SimpleDateFormat sdf = new SimpleDateFormat(); --> It is thread safe or not
}

谁能详细解释一下吗?

谢谢。

最佳答案

在方法内部创建的变量 - 存在于堆栈中,因此它们不会在线程之间共享。每个线程都有自己的堆栈。在方法内部声明它,然后使用它,然后简单地忘记它,就会使其成为线程安全的。

评论后这里是一个片段:

public class DeleteMe {

public static void main(String[] args) throws Exception {
DeleteMe me = new DeleteMe();
me.go();
}

public void go() throws Exception {
final Mutable mutable = new Mutable();
new Thread(new Runnable() {
@Override
public void run() {
mutable.setT(57);
}
}).start();
/** Main thread waits a bit to be sure that the custom Thread will start */
Thread.sleep(2000);
System.out.println(mutable.getT());
}

private class Mutable{
public int t = 0;

public int getT() {
return t;
}

public void setT(int t) {
this.t = t;
}
}
}

关于java - SimpleDateFormat 的 ThreadLocal 变量(或)新的 SimpleDateFormat - 正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22298607/

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