Я хотел, чтобы мое приложение просто имело один объект TimeZone
, который будет использоваться многими объектами SimpleDateFormat
и Calendar
из других мест одновременно. Это делается для того, чтобы избежать необходимости всегда делать TimeZone.getTimeZone(ID)
.
Я знаю, что классы SimpleDateFormat
и Calendar
не являются потокобезопасными, поэтому я настраиваю один поток, чтобы всегда создавать новые экземпляры. Но как насчет TimeZone
? Мне не ясно, могу ли я сделать следующее безопасно:
final TimeZone tz = TimeZone.getTimeZone("GMT");
...
//Thread 1.
Thread t1 = new Thread(Runnable(){
public void run()
{
Calendar cal = Calendar.getInstance(tz);
...
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.setTimeZone(tz);
...
}
});
t1.start();
...
//Thread 2.
Thread t2 = new Thread(Runnable(){
public void run()
{
Calendar cal = Calendar.getInstance(tz);
...
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.setTimeZone(tz);
...
}
});
t2.start();
...
Спасибо!