說明
1、將SimpleDateFormat定義為局部變量時,每個線程都獨占SimpleDateFormat目標。
2、相當于將多線程序改為單線程序程序,因此不存在線程不安全的問題。
實例
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) {
// 創建線程池
ExecutorService threadPool = Executors.newFixedThreadPool(10);
// 執行 10 次時間格式化
for (int i = 0; i < 10; i++) {
int finalI = i;
// 線程池執行任務
threadPool.execute(new Runnable() {
@Override
public void run() {
// 創建 SimpleDateFormat 對象
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("mm:ss");
// 創建時間對象
Date date = new Date(finalI * 1000);
// 執行時間格式化并打印結果
System.out.println(simpleDateFormat.format(date));
}
});
}
// 任務執行完之后關閉線程池
threadPool.shutdown();
}
}