Java多线程环境下SimpleDateFormat类的安全转换方法
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,本篇内容主要讲解"Java多线程环境下SimpleDateFormat类的安全转换方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java多线程环境下S
千家信息网最后更新 2025年01月22日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 ThreadLocalt = 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安全错误
数据库的锁怎样保障安全
tp5框架数据库操作
在合肥做软件开发
护苗网络安全教育宣传活动
数据库安全监控模型
搭建网络安全性
数据库课程设计总结文档
国内服务器哪些好
搭建在线编辑局域网服务器
ajax 更新数据库
从哪些方面提升数据库的安全
辩论赛软件开发
数据库中使用check约束
关系型数据库设计范本
易语言调用数据库
个人信用信息数据库什么时候运行
msql数据库映射到公网
rup是一种软件开发方法
样本数据录入面板数据库
超微gpu服务器机箱
高中生有关网络安全英语作文
车辆gps监控管理系统数据库
洪江市学软件开发
济阳网络技术培训机构
数据库课程设计总结文档
网络安全攻击事件溯源方案
长沙电子软件开发学校
合肥泰格网络技术公司
怎么把nas改成服务器
腾讯服务器哪种好
易语言怎么把表格做数据库