Java多线程环境下SimpleDateFormat类的安全转换方法
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,本篇内容主要讲解"Java多线程环境下SimpleDateFormat类的安全转换方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java多线程环境下S
千家信息网最后更新 2025年11月09日Java多线程环境下SimpleDateFormat类的安全转换方法
本篇内容主要讲解"Java多线程环境下SimpleDateFormat类的安全转换方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java多线程环境下SimpleDateFormat类的安全转换方法"吧!
一、SimpleDateFormat类
package state;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** * SimpleDateFormat类负责日期的转换与格式化 * 解决SimpleDateFormat类多线程环境下转换错误问题 * @author zc * */public class SimpleDateFormatThread extends Thread{ private SimpleDateFormat sdf; private String dateString; public SimpleDateFormatThread(SimpleDateFormat sdf,String dateString) { super(); this.sdf =sdf; this.dateString =dateString; } @Override public void run() { try { //System.out.println(dateString); //刚开始日期格式设置错误为YYYY-MM-dd Date date =DateTools.getSimpleDateFormat("yyyy-MM-dd").parse(dateString); // System.out.println(date); String newDateString =DateTools.getSimpleDateFormat("yyyy-MM-dd").format(date).toString(); if(!newDateString.equals(dateString)) { System.out.println("ThreadName="+this.getName()+"报错日期"+dateString+" 转换日期"+newDateString); }else { System.out.println("ThreadName="+this.getName()+"日期"+dateString+" 转换日期"+newDateString); } } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd"); String[] dateStringArray =new String[]{ "2020-02-05","2020-02-06","2020-02-07","2020-02-08" }; SimpleDateFormatThread []threadArray= new SimpleDateFormatThread[4]; for(int i=0;i<4;i++) { threadArray[i] =new SimpleDateFormatThread(sdf,dateStringArray[i]); } for(int i=0;i<4;i++) { threadArray[i].start(); } }}class DateTools{ //ThreadLocal能使线程绑定到指定的对象 private static ThreadLocal t = new ThreadLocal(); public static SimpleDateFormat getSimpleDateFormat(String datePattern) { SimpleDateFormat sdf=null; sdf =t.get(); if(sdf==null) { sdf =new SimpleDateFormat(datePattern); t.set(sdf); } return sdf; }} 二、线程状态和线程组
(2)线程5状态//NEW 尚未启动的线程//RUNNABLE Java虚拟机中执行的线程//TERMINATED 已经退出的线程//BLOCKED 阻塞受监视的线程//WAITING 无限等待另一个线程//TIMED_WAITING 等待另一个线程指定时间package state;/** * 线程中状态和线程组 * @author zc * */public class MyThread extends Thread{ //NEW //RUNNABLE //TERMINATED //BLOCKED //WAITING //TIMED_WAITING public MyThread() { System.out.println("构造方法中的状态: "+Thread.currentThread().getState()); } @Override public void run() { System.out.println("run方法中的状态:"+Thread.currentThread().getState()); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { MyThread myThread = new MyThread(); System.out.println("main方法中的状态1 "+ myThread.getState()); Thread t1 = new Thread(); Thread t2 = new Thread(); ThreadGroup group =new ThreadGroup("左氏线程组"); Thread t3 = new Thread(group,t1); Thread t4 = new Thread(group,t2); t3.start(); t4.start(); System.out.println("活动的线程数量为: " +group.activeCount()); System.out.println("线程组的名称为: "+group.getName()); try { myThread.start(); Thread.sleep(1000); System.out.println("main方法中的状态2 "+ myThread.getState()); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}到此,相信大家对"Java多线程环境下SimpleDateFormat类的安全转换方法"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
线程
方法
状态
日期
环境
安全
内容
格式
错误
学习
实用
更深
兴趣
名称
实用性
实际
对象
尚未
操作简单
数量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
小学生网络安全知识口诀
考研时间表软件开发
公安局建设网络安全实验室
和平精英地图服务器在哪
福建软件开发设施品质
北京趣购互动网络技术
网络安全竞品分析
人人车网络技术
批发业可以做软件开发吗
curl命令连接sftp服务器
为什么网络安全证书不安全
sgwin服务器
安装黑群晖找不到服务器
中山c 软件开发招聘
山东服务器机柜售价
山西学业考试管理服务器地址
金宝宝软件开发公司
滁州软件开发的公司有哪些
淘宝类目有软件开发的吗
中车保密和网络安全知识题库
关于服务软件开发的项目名称
大同软件开发公司推荐
丹江口公司软件开发包括哪些
一台服务器47988是传销吗
英文版2012服务器管理磁盘
sql如何直接连数据库
北京软件开发者公司
小米老是显示无法连接到服务器
服装智能科技软件开发公司
深圳智云软件开发