【发布时间】:2013-07-30 17:36:22
【问题描述】:
我的要求: 从数据库 ResultSet 中获取时间戳(以 UTC 格式存储)并以线程安全的方式进行。
我的代码目前如下所示:
Calendar utcCal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
while(rs.next())
rs.getTimestamp("utctime",utcCal);
...按预期工作;然而,为每个查询创建一个新的 Calendar 对象似乎相当昂贵(它们非常频繁)。
我一直在寻找 Joda-time 作为可能的替代品,但不能完全弄清楚如何用 Joda-time 线程安全对象替换日历。最好创建一个所有查询都可以使用的静态最终 Joda-Time 线程安全日历替换。
对于成本更低的结果集迭代有什么想法吗?由于日历不是线程安全的,我不能使用单个共享实例。
【问题讨论】:
-
为什么不使用常量作为第二个参数?
-
什么常数?我不能使用 Calendar 作为常量,因为它不是线程安全的。编辑:我想我明白你的意思——调整后的问题
标签: java multithreading calendar thread-safety jodatime