SimpleDateFormatのスレッドセーフを解決するためのThreadLocal

パッケージcom.example.demo.util。

輸入java.text.SimpleDateFormatの。

パブリッククラスDateFormatUtil {
プライベート静的にThreadLocal <てSimpleDateFormat> simpleDateFormatThreadLocal =新規のThreadLocal <てSimpleDateFormat>(){
@Overrideが
てSimpleDateFormatはinitialValue(保護){
( "YYYY-MM-DD HH:MM:SS")新しいてSimpleDateFormatを返します。
}
}。

パブリック静的てSimpleDateFormat getSimpleDateFormat(){
)(simpleDateFormatThreadLocal.getを返します。
}
}

------------------------------------------------ -------------------------------------------------- --------
パッケージcom.example.demo.time。

輸入com.example.demo.util.DateFormatUtil。

輸入java.text.SimpleDateFormatの。
輸入java.util.Date;

パブリッククラスTestDate {
公共の静的な無効メイン(文字列[] args){
のために(int型私= 0;私は<10; I ++){
新しいスレッド(新しいRunnableを(){
@Override
ます。public void実行(){
//注意一定不要用一个栈指向多个引用
SimpleDateFormat SimpleDateFormatは= DateFormatUtil.getSimpleDateFormat();
文字列になりました= simpleDateFormat.format(新しいDate());

{しようと
日付DD = simpleDateFormat.parse(今は)。
ストリングFF = simpleDateFormat.format(DD)。
(ff.equals(現在)){場合
のSystem.out.println( "1111111111")。
} {他
のSystem.out.println( "000000000")。
}
}キャッチ(例外e){
e.printStackTrace();
}

}
}))(始めます。
}

}
}

おすすめ

転載: www.cnblogs.com/coderdxj/p/11490773.html