tka*_*rls 5 java thread-safety simpledateformat
我从程序员测试中得到了以下代码
private String formatDate(Date date)
{
String result = "";
//….
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
result = sdf.format(date);
//…
return result;
}
Run Code Online (Sandbox Code Playgroud)
以及多个线程一次使用该方法的附加信息.这有什么问题吗?
我的回答是,不,它应该没问题(假设//部分中没有其他任何内容).
我的动机是没有使用全局或类数据结构.日期作为参数从每个胎面传递,并且在方法内部仅使用局部变量和局部对象.因此,每个线程将获得并使用它自己的SimpleDateFormat类的对象实例.
但是,这不是测试中的"正确"答案."正确"的答案是SimpleDateFormat类不是线程安全的,因此需要同步对该对象的访问.
那么,我或解决方案是否正确?
你的答案是对的.SimpleDateFormat不是线程安全的,但是每个方法调用都会创建一个自己的实例,所以这没关系.如果SimpleDateFormat是一个实例变量,那么这将不是线程安全的(正如您所提到的).
归档时间: |
|
查看次数: |
2780 次 |
最近记录: |