JAVA-SimpleDateFormat线程安全问题 绝地灬酷狼 2023-07-22 12:24 12阅读 0赞 SimpleDateFormat是用来格式化日期的类,在单线程下使用没问题,但是在多线程场景下,如果多个线程使用的是同个实例,则可能出现时间出错,线程挂死问题。 **原因是format中使用了父类中的的calendar变量,其是一个共享变量,前后修改值在多线程情况下会出问题。** 解决方法: 1.每个线程都使用一个新的实例; 2.使用ThreadLocal保存SimpleDateFormat实例; package com; import java.text.SimpleDateFormat; import java.util.Date; /** * @author wzx * @time 2020/1/11 */ public class DateTest { public static final ThreadLocal<SimpleDateFormat> SIMPLE_DATE_FORMAT = ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy-MM-dd")); public static String format(Date target) { return SIMPLE_DATE_FORMAT.get().format(target); } } 3.使用synchronized; 4.使用JDK8提供的线程安全的Date-Time API package com; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Date; /** * @author wzx * @time 2020/1/11 */ public class DateTest { private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd"); public static String format(LocalDate target) { return target.format(DATE_TIME_FORMATTER); } } 5.使用joda-time格式化 DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd"); System.out.println(dateTimeFormatter.print(new DateTime()));
相关 线程安全问题 我们把⼀段代码想象成⼀个房间,每个线程就是要进⼊这个房间的⼈。如果没有任何机制保证,A进⼊房间之后,还没有出来;B 是不是也可以进⼊房间,打断 A 在房间⾥的隐私。这个就... 绝地灬酷狼/ 2024年04月23日 20:34/ 0 赞/ 90 阅读
相关 线程安全问题 作者简介: zoro-1,目前大二,正在学习Java,数据结构,mysql,javaee等作者主页:??。 朴灿烈づ我的快乐病毒、/ 2024年04月20日 04:48/ 0 赞/ 102 阅读
相关 线程安全问题 目录 1.不安全原因 1.1线程调度无序(抢占式) 1.2多个线程修改同一个变量 1.3修改操作不是原子的 1.4内存可见性 1.5指令重排序 2.解决问题 2 缺乏、安全感/ 2024年03月25日 18:16/ 0 赞/ 68 阅读
相关 线程安全问题 一、线程安全 VS 线程不安全? 线程安全指的是代码若是串行执行和并发执行的结果完全一致,就称为该代码是线程安全的。 若多个线程串行执行(单线程执行)的结果和并发执行的 短命女/ 2023年10月15日 17:32/ 0 赞/ 75 阅读
相关 线程安全问题 定义 > 首先大家需要思考一下何为线程安全性呢??? 《Java并发编程实战》书中给出定义:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替 旧城等待,/ 2023年10月01日 19:02/ 0 赞/ 25 阅读
相关 线程安全问题 ![在这里插入图片描述][f9d8ad49a2a449b9888b716a9946db5c.gif_pic_center] 文章目录 一、线程安全问题 二、 逃离我推掉我的手/ 2023年09月27日 13:11/ 0 赞/ 13 阅读
相关 线程安全问题 基本概述: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nL àì夳堔傛蜴生んèń/ 2022年11月29日 12:21/ 0 赞/ 247 阅读
相关 线程安全问题 线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污 迷南。/ 2022年08月21日 04:15/ 0 赞/ 269 阅读
相关 线程安全问题 线程安装概念 当多个线程,访问某一个类,对象或者方法时 这个类始终都能表现出正确的行为 那么,这个类,对象或者方法,就是线程安全的 Synchronize 朴灿烈づ我的快乐病毒、/ 2022年05月17日 08:06/ 0 赞/ 291 阅读
相关 线程安全问题 a++造成运行结果错误 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly ╰半橙微兮°/ 2021年09月24日 02:46/ 0 赞/ 460 阅读
还没有评论,来说两句吧...