文档章节

FastDateFormat 研究

暗中观察
 暗中观察
发布于 05/26 07:31
字数 259
阅读 7
收藏 0

 FastDateFormat 对缓存的利用,其实就是用ConcurrentHashMap 做了一个map类型的缓存

  public F getInstance(final String pattern, TimeZone timeZone, Locale locale) {
        Validate.notNull(pattern, "pattern must not be null");
        if (timeZone == null) {
            timeZone = TimeZone.getDefault();
        }
        if (locale == null) {
            locale = Locale.getDefault();
        }
        final MultipartKey key = new MultipartKey(pattern, timeZone, locale);
        F format = cInstanceCache.get(key);
        if (format == null) {
            format = createInstance(pattern, timeZone, locale);
            final F previousValue= cInstanceCache.putIfAbsent(key, format);
            if (previousValue != null) {
                // another thread snuck in and did the same work
                // we should return the instance that is in ConcurrentMap
                format= previousValue;
            }
        }
        return format;
    }

线程安全的理解

FastDateFormat#format
 public String format(final Date date) {
        return printer.format(date);
    }   
FastDatePrinter#format,可以看到底层用的是Calendar
因为是在方法体内定义了了Calendar,而方法体内的局部变量是属于栈的
而栈是线程独享的,不存在线程安全问题
 public String format(final Date date) {
        final Calendar c = newCalendar();
        c.setTime(date);
        return applyRulesToString(c);
    }

而SimpleDateFormat 用到的Calendar是成员变量,可以被多个线程共享,所以存在线程安全问题

 

© 著作权归作者所有

暗中观察

暗中观察

粉丝 7
博文 112
码字总数 42959
作品 0
惠州
私信 提问
论文写作的常用方法

  写论文时,经常要介绍自己所使用的研究方法。那么,常用的研究方法有哪些呢?以下是论文网站小编搜集整理的论文写作的常用研究方法,供大家阅读参考。   一、方法   系统科学方法   ...

qq58f7142469309
2017/04/28
0
0
中国AI科研产出全球第一 但引文影响力低

来源:科学网 日前,爱思唯尔发布了《人工智能:知识的创造、转移与应用》报告,分析了全球人工智能科研的发展趋势。报告显示,2017年中国在人工智能领域出版的文章数量位列全球第一,科研产...

人工智能学家
01/14
0
0
斯坦福与苹果基于Apple Watch检测心率异常,0.5%人群被检出,其中84%患有房颤

雷锋网消息 3月16日,斯坦福大学医学院研究人员在洛杉矶新奥尔良举行的美国心脏病学会第68届年度科学会议和博览会上公布了一项基于Apple Watch的心脏研究结果。 研究结果显示,超过40万名参与...

刘思思
03/18
0
0
Google 科研团队:20 大改变生活的研究项目

Google拥有一支由400多名科学家组成的研发团队,专门研究推动计算机科学和技术发展的最基本的问题。虽然他们并不研究无人驾驶汽车或是改良智能手机,但他们的工作有助于培养出更优秀的计算机...

oschina
2012/06/10
2.5K
17
美NSF发布“计算神经科学协作研究”项目指南

美国国家科学基金会(NSF)发布“计算神经科学协作研究(CRCNS)”项目指南,支持如下两类研究——跨科学学科的创新合作研究,以及数据、软件与其他资源共享研究。通过CRCNS项目,NSF、国家卫...

gs780j
2018/01/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么加个注解@Transtaional就可以保证事务的一致性和完整性?

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http:......

architect刘源源
33分钟前
2
0
硅谷对于禁华为坐立不安

5 月 15 日,美国商务部决定把华为及其多家关联公司列入一份“实体名单”后,20 日又宣布给与华为 90 天“临时执照”,为“依赖华为设备的美国通信商留出余地”。 尽管目前给出了“临时执照”...

linuxCool
今天
3
0
Java—System类入门学习

第三阶段 JAVA常见对象的学习 System类 System类包含一些有用的字段和方法,他不能被实例化 //用于垃圾回收public static void gc()//终止正在运行的java虚拟机。参数用作状态码,根据惯例...

BWH_Steven
今天
6
0
OSChina 周日乱弹 —— 喝了维他茶,忘了那个她

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoniezi :#今日歌曲推荐#哈哈哈洗脑《土拨鼠之歌》 《土拨鼠之歌》 手机党少年们想听歌,请使劲儿戳(这里) 周六…… 不是该休息么, 被...

小小编辑
今天
639
11
你需要知道的 5 个 Linux 新手会犯的失误

Linux 爱好者们分享了他们犯下的一些最大错误。 终身学习是明智的 —— 它可以让你的思维敏捷,让你在就业市场上更具竞争力。但是有些技能比其他技能更难学,尤其是那些小菜鸟错误,当你尝试...

xiangyunyan
今天
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部