Java DateFormat不是线程安全的----会导致什么问题呢?
下文笔者讲述java中DateFormat不是线程安全的导致相关问题简介说明,如下所示:
在多线程环境下,DateFormat类中不同的方法使用了相同的值 这就方式就导致了DateFormat线程不安全的现象发生,例:
package com.java265.other; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Arraylist; import java.util.Date; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; public class TestDateFormat { public static void main(String[] args) throws Exception, ExecutionException { final DateFormat format = new SimpleDateFormat("yyyyMMdd"); Callable<Date> task = new Callable<Date>(){ public Date call() throws Exception { return format.parse("20220201"); } }; // 定义5个线程 ExecutorService exec = Executors.newFixedThreadPool(5); List<Future<Date>> results = new ArrayList<Future<Date>>(); // date数据转换 for(int i = 0 ; i< 10 ; i++){ results.add(exec.submit(task)); } exec.shutdown(); // 输出结果 for(Future<Date> result : results){ System.out.println(result.get()); } } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。