說明
1、將SimpleDateFormat定義為局部變量時(shí),每個(gè)線程都獨(dú)占SimpleDateFormat目標(biāo)。
2、相當(dāng)于將多線程序改為單線程序程序,因此不存在線程不安全的問題。
實(shí)例
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class SimpleDateFormatExample {
public static void main(String[] args) {
// 創(chuàng)建線程池
ExecutorService threadPool = Executors.newFixedThreadPool(10);
// 執(zhí)行 10 次時(shí)間格式化
for (int i = 0; i < 10; i++) {
int finalI = i;
// 線程池執(zhí)行任務(wù)
threadPool.execute(new Runnable() {
@Override
public void run() {
// 創(chuàng)建 SimpleDateFormat 對(duì)象
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("mm:ss");
// 創(chuàng)建時(shí)間對(duì)象
Date date = new Date(finalI * 1000);
// 執(zhí)行時(shí)間格式化并打印結(jié)果
System.out.println(simpleDateFormat.format(date));
}
});
}
// 任務(wù)執(zhí)行完之后關(guān)閉線程池
threadPool.shutdown();
}
}