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

怀柔高端网站建设网络营销从网站建设开始

怀柔高端网站建设,网络营销从网站建设开始,叫人开发网站注意事项,制作图片用什么软件好前言 工作或学习过程中难免会接触到时间(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.15wanjia.com/news/188891.html

相关文章:

  • 网站悬浮窗广告怎么做网站购物建设实训心得体会
  • 汕头网站制作多少钱wordpress 修改域名
  • 网站建设的现状和未来昌大建设怎么样
  • 织梦做网站好不好免费发布推广信息网站
  • 无锡网站排名优化网站开发 强制兼容模式
  • 怎么做自己的充值网站商城网站建设论文
  • 美食网站页面设计源代码过期域名查询网站
  • 郑州做网站 艾特郴州建设企业网站
  • 锦州电脑网站建设计算机网站开发国外参考文献
  • 晋城市网站建设管理人员个性定制
  • 跨境电商网站开发公司麻涌镇仿做网站
  • 网站建设哪家好服务建设部网站上怎样查询企业业绩
  • 茂名模板建站定制广陵建设局网站
  • WordPress默认模板做的站网站开发报价范围
  • 网站设计制作合同范本搜索引擎网站推广
  • cms建站系统是什么新泰房产网58个人出售
  • 上海徐汇网站建设公司做网站的企业有哪些
  • 戴尔网站建设规划网站图标 psd
  • 优惠活动制作网站杭州专业网站设计制作公司
  • 天都城网站建设高德街景地图全景在线
  • 做调研用到的大数据网站亚马逊店铺出售网站
  • 网站跳出率多少正常网站底部浮动电话广告
  • 南阳网站推广价格长沙专门做网站公司
  • 学习网页设计网站制作常州微信网站建设
  • 提供网站备案信息设计网站欣赏
  • 计算机网站开发的目的做个免费的网站
  • 网站营销成功的案例分析如何在vs做网站
  • 广州金融网站建设做游戏网站需要注意的问题
  • 网站没有做实名认证网站开发和软件开发有什么区别
  • c语言和网站建设的关系百度搜索优化怎么做