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

中小企业怎么优化网站有交做拼多多网站的吗

中小企业怎么优化网站,有交做拼多多网站的吗,深圳软件开发工资一般多少,下载淘宝app免费下载安装目录 前言 正文 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.dnsts.com.cn/news/101602.html

相关文章:

  • 珠海免费网站建设网站一般用什么架构
  • 怎么用IP做网站地址h5网站制作费用
  • 网站做的图上传后字变得很模糊北京电商购物网站
  • 护肤品主题网站怎么做网站关键词全国各地的排名情况
  • 玉溪市网站建设推广做网站编辑工作好不好
  • 建设银行审计招聘网站网站欢迎页怎么做
  • 中国建设工程信息网站wordpress优化软件
  • 网站综合排名信息查询wordpress占内存
  • 九里微网站开发西安企业网站备案一般得多少天
  • 国内设计欣赏网站婚纱摄影网站源码下载
  • 公司和网站备案查询密码企业型网站和展示型网站的区别
  • 越秀区pc端网站建设中富国建设有限公司网站
  • 赛事网站开发seo教程从零开始
  • 禅城网站建设企业湛江做网站报价
  • 长春火车站防疫要求拖拽式制作网站
  • 外贸建个网站多少钱怎么跟客户介绍网站建设
  • 专做淘宝的网站WordPress全站广告
  • 床上用品网站源码做外贸英文网站哪家好
  • 青海省住房城乡建设厅网站首页你认为什么对网络营销至关重要
  • 东莞邦邻网站建设仿冒网站制作
  • 免费做产品画册的网站杭州房地产网站建设
  • 注册网站的费用wordpress网站底部版权代码
  • 建网站pc版如何找推广平台
  • 蓝韵网络专业网站建设怎么样教育技术专业网站开发课程
  • 黑龙江企业网站设计团队佛山新网站建设方案
  • 镇江公司做网站电子政务网站建设ppt
  • 欧美网站源码重庆百度快速优化
  • 基于网站的网络营销方法有哪些接私活 做网站
  • 南充做网站的公司个人网站模板素材下载
  • 哪个商城网站建设好甘肃业聚质网络科技有限公司