当前位置: 首页 > news >正文

肇庆企业网站关键词优化教程桂城网站建设费用

肇庆企业网站关键词优化教程,桂城网站建设费用,wordpress编辑器内容,重庆景点介绍目录 前言 正文 1.出现异常 2.解决方法1 3.解决方法2 总结 前言 SimpleDateFormat 类是 Java 中处理日期和时间格式化和解析的类#xff0c;但它并不是线程安全的。这意味着多个线程不能安全地共享一个 SimpleDateFormat 实例进行日期和时间的解析和格式化。当多个…目录 前言  正文  1.出现异常  2.解决方法1  3.解决方法2  总结 前言  SimpleDateFormat 类是 Java 中处理日期和时间格式化和解析的类但它并不是线程安全的。这意味着多个线程不能安全地共享一个 SimpleDateFormat 实例进行日期和时间的解析和格式化。当多个线程共享同一个 SimpleDateFormat 实例时会因为 SimpleDateFormat 内部维护的日历字段例如Calendar 对象等的竞争条件而导致解析和格式化错误。 正文  类 SimpleDataFormat 的可以对日期进行解析与格式化但在使用时如果不想使用 0 进行填充比如 2000-01-02 只想转换成 2002-1-2 我们需要在代码上进行处理示例代码如下。  package org.example.SimpleDataFormat;import java.text.ParseException; import java.text.SimpleDateFormat;public class Run {public static void main(String[] args) throws ParseException {String dataString1 2000-1-1;String dataString2 2000-11-18;SimpleDateFormat format1 new SimpleDateFormat(yyyy-M-d);SimpleDateFormat format2 new SimpleDateFormat(yyyy-MM-dd);//先按照日期模式将字符串解析成日期再格式化成时间字符串。System.out.println(format1.format(format1.parse(dataString1)));System.out.println(format2.format(format2.parse(dataString1)));System.out.println(format1.format(format1.parse(dataString2)));System.out.println(format2.format(format2.parse(dataString2)));} }打印结果如下 但 SimpleDateFormat 在多线程环境中使用类容易造成数据转换及处理不准确因为类 SimpleDateFormat 并不是线程安全的。   1.出现异常  本示例将展示使用类 SimpleDataFormat 在多线程环境中处理日期时得到错误结果这也是在多线程环境中开发经常遇到的问题。  ackage org.example.SimpleDataFormat;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;public class formatError {static class MyThread extends Thread {private SimpleDateFormat sdf;private String dateString;public MyThread(SimpleDateFormat sdf, String dateString) {this.sdf sdf;this.dateString dateString;}Overridepublic void run() {try {Date dateRef sdf.parse(dateString);String newDataString sdf.format(dateRef);if (!newDataString.equals(dateString)) {System.out.println(ThreadName this.getName() 报错了 日期字符串 dateString 转换成的日期为 newDataString);}} catch (ParseException e) {e.printStackTrace();}}}public static void main(String[] args) {SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);String[] dateStringArray new String[]{2000-01-01,2000-01-02,2000-01-03,2000-01-04,2000-01-05,2000-01-06,2000-01-07,2000-01-08,2000-01-09,2000-01-10,};MyThread[] threads new MyThread[10];for (int i 0; i 10; i) {threads[i] new MyThread(sdf,dateStringArray[i]);}for (int i 0; i 10; i) {threads[i].start();}} } 运行结果如图 从打印的结果来看使用单例的类 SimpleDateFormat 在多线程环境中处理日期极易出现转换错误的情况。  甚至由于竞争导致解析逻辑的数字处理部分冲突控制台照成了错误输出 。 2.解决方法1  第一种解决办法的原理是满足竞争创建多个类 SimpleDateFormat 的实例。  package org.example.SimpleDataFormat;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;public class formatOK1 {static class DateTools{public static Date parse(String formatPattern, String dateString) throws ParseException {return new SimpleDateFormat(formatPattern).parse(dateString);}public static String format(String formatPattern, Date date) {return new SimpleDateFormat(formatPattern).format(date);}}static class MyThread extends Thread {private SimpleDateFormat sdf;private String dateString;public MyThread(SimpleDateFormat sdf, String dateString) {this.sdf sdf;this.dateString dateString;}Overridepublic void run() {try {Date dateRef DateTools.parse(yyyy-MM-dd,dateString);String newDataString DateTools.format(yyyy-MM-dd,dateRef);if (!newDataString.equals(dateString)) {System.out.println(ThreadName this.getName() 报错了 日期字符串 dateString 转换成的日期为 newDataString);}} catch (ParseException e) {e.printStackTrace();}}}public static void main(String[] args) {SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);String[] dateStringArray new String[]{2000-01-01,2000-01-02,2000-01-03,2000-01-04,2000-01-05,2000-01-06,2000-01-07,2000-01-08,2000-01-09,2000-01-10,};MyThread[] threads new MyThread[10];for (int i 0; i 10; i) {threads[i] new MyThread(sdf,dateStringArray[i]);}for (int i 0; i 10; i) {threads[i].start();}} } 运行结果如图 控制台没有异常信息输出。 3.解决方法2  还有一种更简单的方法那就是使用 ThreadLocal 包装SimpleDateFormat。ThreadLocal 可以为每个线程提供一个单独的 SimpleDateFormat 实例能使线程绑定到指定对象。使用该类也可以解决多线程环境中类 SimpleDateFormat 处理日期时出现错误的问题。 package org.example.SimpleDataFormat;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;public class formatOK2 {static class DateTools {private static ThreadLocalSimpleDateFormat t1 new ThreadLocal();public static SimpleDateFormat getSimpleDateFormat(String datePattern) {SimpleDateFormat sdf null;sdf t1.get();if (sdf null) {sdf new SimpleDateFormat(datePattern);t1.set(sdf);}return sdf;}}static class MyThread extends Thread {private SimpleDateFormat sdf;private String dateString;public MyThread(SimpleDateFormat sdf, String dateString) {this.sdf sdf;this.dateString dateString;}Overridepublic void run() {try {Date dateRef DateTools.getSimpleDateFormat(yyyy-MM-dd).parse(dateString);String newDataString DateTools.getSimpleDateFormat(yyyy-MM-dd).format(dateRef);if (!newDataString.equals(dateString)) {System.out.println(ThreadName this.getName() 报错了 日期字符串 dateString 转换成的日期为 newDataString);}} catch (ParseException e) {e.printStackTrace();}}}public static void main(String[] args) {SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);String[] dateStringArray new String[]{2000-01-01,2000-01-02, 2000-01-03, 2000-01-04,2000-01-05, 2000-01-06, 2000-01-07,2000-01-08, 2000-01-09, 2000-01-10,};MyThread[] threads new MyThread[10];for (int i 0; i 10; i) {threads[i] new MyThread(sdf, dateStringArray[i]);}for (int i 0; i 10; i) {threads[i].start();}} }运行结果 控制台没有异常信息输出说明 ThreadLocal 解决了 SimpleDateFormat 非线程安全问题。   总结 加油
http://www.hkea.cn/news/14357239/

相关文章:

  • 中国工信部网站备案做词做曲网站
  • 网站开发接私活软件搭建
  • 500强网站建设南通网站建设团队
  • 网站制作需要学习什么百度指数购买
  • 网站建设人才东莞市招投标交易中心
  • 长沙微信网站电子商务系统建设网站策划书
  • 做区块链好的网站网站改版建设的合同
  • 想换掉做网站的公司商丘网站建设价格
  • 免费建站体验房屋设计说明
  • 做外卖的网站电子工厂网站建设
  • 深圳租赁住房和建设局网站网站需要更新的频率
  • 吉林省水土保持生态建设网站店铺代运营
  • 网站安全扫描工具查域名注册详细信息查询
  • 什么是网站开发技术中山网站设计服务
  • 做网站是百度包年快照带后台的网站模板
  • 信息免费建站网站有哪些自己怎么制作假山
  • 用ps做网站方法入侵织梦网站后台
  • 网站域名过期还能用吗浅谈旅游网站的规划与建设
  • 中国旅游网站建设烟台哪里有做网站
  • 能够做一镜到底的网站边个网站可以接模具做
  • 英文网站推广c 网站建设
  • 服务类网站开发网站加入搜索引擎怎么做
  • apache多网站配置c 网站开发 视频
  • 网站建设广告语动态wordpress模板
  • 物价工作信息网站建设网站 关键词 出现频率
  • 网站建设 wordpress如何做摄影网站
  • iis7 部署静态网站职业生涯规划大赛意义
  • 自己做的网站如何上传网站建设低价建站损失在哪里
  • 网站服务器提供什么服务西安做网站排名
  • 宜春做网站 黑酷seowordpress不显示文章的时间