simpledateformat线程安全吗(Java开发中线程的安全问题以及产生的原因)

2025-04-15 11:40:01 0

simpledateformat线程安全吗(Java开发中线程的安全问题以及产生的原因)

本文目录

Java开发中线程的安全问题以及产生的原因

Java如何保证原子性常用的保证Java操作原子性的工具是锁和同步方法(或者同步代码块)。使用锁,可以保证同一时间只有一个线程能拿到锁,也就保证了同一时间只有一个线程能执行申请锁和释放锁之间的代码。与锁类似的是同步方法或者同步代码块。使用非静态同步方法时,锁住的是当前实例;使用静态同步方法时,锁住的是该类的Class对象;使用静态代码块时,锁住的是synchronized关键字后面括号内的对象。

simpledateformat 线程安全吗

我们都知道jdk里面的SimpleDateFormat不是线程安全的,而commons-lang中的DateFormatUtils(或者说FastDateFormat)却是,非常快速描了一眼,发现里面也引用了SimpleDateFormat,那为什么它会线程安全?  OK,仔细分析一下. 1,假设我们调用如下方法 public static String format(Date date, String pattern) { return format(date, pattern, null, null); } 间接调用 public static String format(Date date, String pattern, TimeZone timeZone, Locale locale) { FastDateFormat df = FastDateFormat.getInstance(pattern, timeZone, locale); return df.format(date); } 局部变量,暂时没什么问题. 2,进入FastDateFormat public static synchronized FastDateFormat getInstance(String pattern, TimeZone timeZone, Locale locale) { FastDateFormat emptyFormat = new FastDateFormat(pattern, timeZone, locale); FastDateFormat format = (FastDateFormat) cInstanceCache.get(emptyFormat); if (format == null) { format = emptyFormat; format.init(); // convert shell format into usable one cInstanceCache.put(format, format); // this is OK! } return format; }  首先,这是个同步方法.  其次,在构造方法中,只是对4个Final变量赋值.  然后,如果找不到,则调用相应的init方法,这个方法里面也只是使用Final变量来对另外的两个transient变量赋值.  再然后放到map中做缓存(提高速度)  经过上面的操作,保证了只要传递的参数相同(pattern,timeZone,locale),获得的就是同一个实例,但是这个实例所拥有的共享变量是final的,没有其他的机会修改了,只读的share也没关系了.  3,开始format  同样,操作的也只是局部变量或者只读的final,transient变量,也没有问题.

simpledateformat线程安全吗(Java开发中线程的安全问题以及产生的原因)

本文编辑:admin

更多文章:


stacking(stack中文是什么意思)

stacking(stack中文是什么意思)

本文目录stack中文是什么意思VLAN Stacking是什么意思stacking是什么意思stack是什么意思英语“stack”是什么意思stacking test是什么意思英语“stack“是什么意思stacking pallet是什

2025年3月12日 13:20

expensive比较级(expensive的比较级和最高级)

expensive比较级(expensive的比较级和最高级)

本文目录expensive的比较级和最高级expensive的比较级是什么expensive 比较级expensive的比较级和最高级怎么写expensive什么意思中文翻译expensive比较级和最高级是什么expensive的比较级和

2025年2月17日 00:10

选项卡怎么做(WPS云文档选项卡怎么弄出来的)

选项卡怎么做(WPS云文档选项卡怎么弄出来的)

本文目录WPS云文档选项卡怎么弄出来的在wps里面 如何做选项王者荣耀官网里的选项卡怎么做如何在excel的一个单元格做一个选项卡多选的网页中的选项卡怎么制作怎么样做选项卡啊微信公众平台下方的选项卡是怎么做的EXCEL里面如何做选项啊WPS

2025年2月15日 20:20

食肉菌是什么(“何不食肉糜”是什么意思你怎么看这句话)

食肉菌是什么(“何不食肉糜”是什么意思你怎么看这句话)

本文目录“何不食肉糜”是什么意思你怎么看这句话噬肉菌什么样什么是食碳细菌“何不食肉糜”是什么意思你怎么看这句话谢谢邀请。“何不食肉糜”意思是“怎么不去喝肉粥呢?”这则荒唐的笑话出自《晋书·惠帝纪》。当年,全国闹饥荒,老百姓没饭吃,饿死无数。

2025年3月7日 07:20

living proof(living proof shampoo是什么)

living proof(living proof shampoo是什么)

本文目录living proof shampoo是什么madam adam的fall from grace 歌词谁知道 跪求求Living proof的歌词翻译live和living有什么区别living proof 什么意思living

2025年4月4日 15:20

数据结构课程设计选题(要命的数据结构课程设计题目啊!!!)

数据结构课程设计选题(要命的数据结构课程设计题目啊!!!)

本文目录要命的数据结构课程设计题目啊!!!数据结构课程设计题《数据结构》课程设计题目急急!!!!一道数据结构课程设计题目数据结构课程设计题目 1. 运动会分数统计   任务:参加运动会有n个学校,学校编号为1n比赛分成m个几个数据结构的课程

2025年4月7日 18:20

无法建立ssl连接(苹果手机发生ssl错误无法与服务器建立安全连接怎么解决)

无法建立ssl连接(苹果手机发生ssl错误无法与服务器建立安全连接怎么解决)

本文目录苹果手机发生ssl错误无法与服务器建立安全连接怎么解决无法加载 发生了SSL错误,无法建立与该服务器的安全连接电脑浏览器显示“发生SSL错误无法建立与该服务器的安全连接”,是什么意思币安发生ssl错误+无法建立到该服务器的安全连接无

2025年2月12日 18:00

parameter是什么意思中文翻译(parameter  是什么意思)

parameter是什么意思中文翻译(parameter 是什么意思)

本文目录parameter 是什么意思parameter翻译过来什么意思参数英文是什么意思parameters这词什么意思parameter是什么意思parameter 是什么意思parameter 参数, 系数, 工业生产预测法p

2025年3月11日 19:30

androidsdk下载安装教程(android sdk安装包怎么安装)

androidsdk下载安装教程(android sdk安装包怎么安装)

本文目录android sdk安装包怎么安装android sdk压缩包怎么安装android sdk安装包怎么安装下载最新的Android SDK 文件,到官网选择自己想要的版本下载。解压Android SDK文件,里面有两个应用程序:

2025年4月2日 01:40

php安装mysqli扩展(腾讯云服务器下,怎么安装php的mysqli扩展)

php安装mysqli扩展(腾讯云服务器下,怎么安装php的mysqli扩展)

本文目录腾讯云服务器下,怎么安装php的mysqli扩展nginx和php 怎么安装mysqli扩展如何安装新的PHP扩展模块如何在php中扩展mysqli插件怎么安装php的mysql扩展缺少 mysqli 扩展.请检查 PHP 配置腾讯

2025年4月1日 07:30

最强大的编程语言(你认为当今最强大的计算机语言是什么)

最强大的编程语言(你认为当今最强大的计算机语言是什么)

本文目录你认为当今最强大的计算机语言是什么请问最强大的编程语言是哪种功能最强大的编程语言是什么你认为当今最强大的计算机语言是什么最强大的计算机语言绝对是机器语言。机器语言可以实现用高级语言无法实现的功能。只要是计算机能实现的功能,用机器语言

2025年4月11日 10:20

linux没有yum命令怎么办(linux怎么配置yum)

linux没有yum命令怎么办(linux怎么配置yum)

本文目录linux怎么配置yumLinux yum 不能用了,什么原因求解linux yum命令问题, 执行了yum clean 后 系统运行yum命令出问题没有yum怎么在linux下搭建ftp请教! 1.为什么我的安装linux系统后,

2025年4月15日 00:40

github 教程(怎么在github上建立自己的代码仓库)

github 教程(怎么在github上建立自己的代码仓库)

本文目录怎么在github上建立自己的代码仓库如何用github搭建个人网站如何使用github建站如何利用github搭建个人网站github 怎么搭建博客如何更好的理解和使用github怎么用github搭建个人博客怎么在github上

2025年4月6日 18:30

常见的五个操作系统(操作系统有多少种类)

常见的五个操作系统(操作系统有多少种类)

本文目录操作系统有多少种类求所有操作系统名称简介计算机常见的几种系统什么事操作系统常用的操作系统有哪些操作系统有多少种类目前操作系统种类太多了,根据操作系统的使用环境和对作业处理方式来考虑,可分为批处理系统(MVX、DOS/VSE)、分时系

2025年4月13日 09:50

insert into select from 主键冲突(Select 中如何忽略“主键重复“错)

insert into select from 主键冲突(Select 中如何忽略“主键重复“错)

本文目录Select 中如何忽略“主键重复“错SQL INSERT 语句与外键冲突mysql忽略主键冲突,避免重复插入的几种方式sql表值函数 多用户访问问题SQL一张表插入到另一张表(主键不会处理)SQL insert into 出现重复

2025年3月17日 16:10

ppt基础入门教程(新手怎么入门PPT制作有什么推荐的教程吗)

ppt基础入门教程(新手怎么入门PPT制作有什么推荐的教程吗)

本文目录新手怎么入门PPT制作有什么推荐的教程吗ppt动画如何入门,有哪些技巧PPT初学者应该先学什么新手怎么入门PPT制作有什么推荐的教程吗建议可以从ppt的逻辑先入手,从框架开始,做一个思维导图,让自己根据思维导图可以快速的进行ppt排

2025年3月19日 17:40

alphabet(Alphabet为何在股东大会上遭受投资者的批评)

alphabet(Alphabet为何在股东大会上遭受投资者的批评)

本文目录Alphabet为何在股东大会上遭受投资者的批评为实现Project Loon互联网气球的商用,Alphabet做了哪些准备谷歌为什么要改名alphabetAlphabet为何在股东大会上遭受投资者的批评在周三举行的年度股东大会上,

2025年3月12日 18:40

从淘客公司购买淘客app 软件需要注意什么什么源代码,软件归属.里面给的网页后台源代码之类需要些什么?淘客源码是什么

从淘客公司购买淘客app 软件需要注意什么什么源代码,软件归属.里面给的网页后台源代码之类需要些什么?淘客源码是什么

本文目录从淘客公司购买淘客app 软件需要注意什么什么源代码,软件归属.里面给的网页后台源代码之类需要些什么淘客源码是什么完全免费使用的淘宝客网站程序源码有哪些买了淘客app源码.下面做这个app要几个程序员会不会很难为什么有的人说淘客源码

2025年2月19日 23:00

xpath下载安装(跪求xpath的帮助文档)

xpath下载安装(跪求xpath的帮助文档)

本文目录跪求xpath的帮助文档xpath /root/data/ 怎么解xpath finder怎么用c#怎么用xpath解析html跪求xpath的帮助文档用netbeans软件你会找到你说的那个类,一般来说jdk属于一个辅助性的工具,

2025年2月9日 21:30

condition是什么意思英语(条件的英文单词是什么)

condition是什么意思英语(条件的英文单词是什么)

本文目录条件的英文单词是什么condition用英语怎么说condition 怎么理解条件的英文单词是什么条件的英文是condition。英     n. 条件;情况 v. 训练;决定;以......为条件;护理(头发)1、I had h

2025年2月25日 16:40

近期文章

本站热文

harbor,port,pier的区别?谁能解释“harbour“(港口)与“pier“(码头)的区别
2025-02-22 17:40:03 浏览:20
ibatis foreach(ibatis 批量update操作)
2025-02-10 23:40:06 浏览:7
endless rain(endless rain表达什么情感)
2025-02-14 06:00:02 浏览:7
标签列表

热门搜索