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

云南澄江县建设局网站企业网络营销推广方案策划范文

云南澄江县建设局网站,企业网络营销推广方案策划范文,网页设计与制作 pdf,郑州响应式网站建设前言 工作或学习过程中难免会接触到时间(Date)相关的内容,比如String类型转为Date类型,或者Date类型转为String类型,jdk为我们提供了一套完善的日期格式化工具,DateFormat类,使用者可以使用该接…

前言

工作或学习过程中难免会接触到时间(Date)相关的内容,比如String类型转为Date类型,或者Date类型转为String类型,jdk为我们提供了一套完善的日期格式化工具,DateFormat类,使用者可以使用该接口实现常用日期的格式化。但是这里面有个坑…

DateFormat使用

package com.cz.threadLocal;import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;/*** @program: Reids* @description:* @author: Cheng Zhi* @create: 2023-04-27 20:13**/
public class TestSimpleDataFormat {private static class DateUtils {private static DateFormat dateFormat = new SimpleDateFormat("yyyymmdd");public static Date strToDate(String strDate) {try {Date yyyymmdd = dateFormat.parse(strDate);return yyyymmdd;} catch (ParseException e) {e.printStackTrace();}return null;}}public static void main(String[] args) {//System.out.println(DateUtils.strToDate("20230111"));for (int i=0; i<5; i++) {final int ii = i;new Thread(new Runnable() {@Overridepublic void run() {System.out.println(DateUtils.strToDate("2023011" + ii));}}).start();}}
}

以上就是一个日期转换的测试类,但是实际运行起来会报错,如下:

image.png

原因是什么呢?一般在多线程环境下要避免出现全局变量,因为全局变量会受到多个线程的影响,这个类似于mysql存储过程中使用视图做为游标一样,因为视图是数据库级的,所以多个存储过程一起跑会导致视图中的数据变更。java中也是一样的,全局变量会被各个线程去读取或修改。就上面的例子而言,这里有多处问题:
1、private static DateFormat dateFormat = new SimpleDateFormat(“yyyymmdd”); 使用static修饰,这个就相当于多个线程会共享,所以这里本身就是不安全的。
2、SimpleDateFormat这个类本身就是不安全的,如下:

image.png

该类中使用了全局变量。

image.png

CalendarBuilder中存在有一个establish方法,在执行该方法时,会将全局变量中的内容清除(这里使用的是逻辑清除,即全部设置为0),所以多个线程下,如果线程A清除了stamp[]中的内容,线程B要使用stamp[]中的内容,这里就会产生异常。

因此在多线程中使用DateFormat时要考虑线程安全问题,既然说到线程安全,那一般就有如下几个方法:
1、每次使用new 一个新的对象,但是这样效率很低。
2、在使用DateFormat的时候,加锁。
3、将DateFormat对象使用ThreadLocal来存储。
修改后的代码如下:

package com.cz.threadLocal;import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;/*** @program: Reids* @description:* @author: Cheng Zhi* @create: 2023-04-27 20:13**/
public class TestSimpleDataFormat {private static class DateUtils {private static ThreadLocal<DateFormat> dateFormatThreadLocal = new ThreadLocal<DateFormat>() {@Overrideprotected DateFormat initialValue() {DateFormat dateFormat = new SimpleDateFormat("yyyymmdd");return dateFormat;}};public static Date strToDate(String strDate) {try {Date yyyymmdd = dateFormatThreadLocal.get().parse(strDate);return yyyymmdd;} catch (ParseException e) {e.printStackTrace();}return null;}}public static void main(String[] args) {//System.out.println(DateUtils.strToDate("20230111"));for (int i=0; i<5; i++) {final int ii = i;new Thread(new Runnable() {@Overridepublic void run() {System.out.println(DateUtils.strToDate("2023011" + ii));}}).start();}}
}

运行效果:

image.png

http://www.tj-hxxt.cn/news/89763.html

相关文章:

  • 宁波城乡建设局管方网站学it需要什么学历基础
  • 网站建设单选b2b免费发布平台
  • 域名注册后怎么建网站什么是seo搜索引擎优化
  • wordpress 电商 插件下载网站推广和精准seo
  • 厦门公司网站开发火狐搜索引擎
  • 新河网站建设快速优化网站排名软件
  • 有什么网站可以做深圳初二的试卷练习品牌广告投放
  • 网站里+动效是用什么做的阿里大数据平台
  • 贵阳网站建设 网站制作网络推广app是干什么的
  • 网站登录和权限怎么做单页应用seo如何解决
  • 自己做的网站如何被百度检索东莞公司网上推广
  • 08r2 搭建php网站aso优化是什么
  • 建设阿里巴巴网站google adwords关键词工具
  • 高端礼品定制网站网络推广代理平台
  • 做网站链接怎么弄长沙网站托管优化
  • 德惠市住房城乡建设委官方网站抖音代运营大概多少钱一个月
  • harry louis做受网站网络营销专业是做什么的
  • wordpress register_taxonomy优化大师电脑版
  • 怎么自建一个网站app关键词推广
  • 做网站app要多钱seo公司seo教程
  • 青海做高端网站建设的公司郑州今日重大新闻
  • 亚马逊欧洲站app线下推广怎么做
  • 闵行网站建设哪家好全网万能搜索引擎
  • javascript教程网站哪个浏览器不屏蔽网站
  • qq代刷网站社区建设宁波seo费用
  • 网站建设用dw申请域名的方法和流程
  • 注册城乡规划师值钱吗在运营中seo是什么意思
  • 毕业设计网站建设软件项目手游推广渠道和推广方式
  • 霸气独一无二的公司名字sem和seo区别与联系
  • 肇庆做网站长尾关键词挖掘网站