Java8新特性之线程安全的时间日期API尝试
嗯,这篇博客只有代码,重要的是线程安全
package cn.ycl.test;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
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;
//这是Java8以后才有的线程安全的时间日期API
public class test01 {
public static void main(String[] args) throws InterruptedException, ExecutionException {
//自定义格式,就像jdk7中的simpleDateFormat()方法一样
DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyyMMdd");
//创建线程
Callable<LocalDate> callable=new Callable<LocalDate>() {
@Override
public LocalDate call() throws Exception {
return LocalDate.parse("20161218",dtf);
}};
//用于存储执行线程的返回值
List<Future<LocalDate>> list = new ArrayList<>();
//创建线程池,这是有界线程池
ExecutorService pool = Executors.newFixedThreadPool(10);
//执行线程并将结果加入list
for (int i = 0; i < 20; i++) {
list.add(pool.submit(callable));
}
for(Future<LocalDate> future :list) {
System.out.println(future.get());
}
pool.shutdown();
}
}