在下面例子中,System.out.println(data+ " : " + tempDateStr); 打印的结果是不一样的。
public
class
DateFormatIsNotThreadSafe {
static
final
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat(
"dd-MM-yyyy"
);
static
String[]
testData
= {
"01-10-1999"
,
"14-10-2001"
,
"31-10-2007"
};
public
static
void
main(String[] args){
for
(
final
String data :
testData
){
new
Thread(){
public
void
run(){
try
{
Date date =
dateFormat
.parse(data);
String tempDateStr =
dateFormat
.format(date);
System.
out
.println(data+
" : "
+ tempDateStr);
}
catch
(ParseException e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
}
}.start();
}
}
}
在运行的100个线程中,有些线程运行的结果是正确的,有些线程的运行结果是错误的