Erişim SimpleDateFormat senkronize
SimpleDateFormat için javadoc SimpleDateFormat senkronize olmadığını bildiriyor.
"Tarih biçimleri eşitlenir. Bu ayrı oluşturmak için tavsiye edilir her iş parçacığı için biçimi örnekleri. Eğer erişim birden çok iş parçacığı bir biçimi, aynı anda, senkronize olmalı dışarıdan."
Ama ne çok dişli bir ortamda SimpleDateFormat örneği kullanarak en iyi yaklaşımdır. Burada bir kaç seçenek var düşünce var kullanılan seçenekler 1 ve 2'de geçmiş ama ben merak etmiyor musun varsa daha iyi alternatifler ya da bu seçenekler sunuyoruz ki en iyi performans ve tutarlılık.
Seçenek 1: gerektiğinde yerel örnekler oluşturur
public String formatDate(Date d) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(d);
}
Seçenek 2: bir sınıf değişkeni ama senkronize erişim olarak SimpleDateFormat bir örneğini Oluşturun.
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
public String formatDate(Date d) {
synchronized(sdf) {
return sdf.format(d);
}
}
Seçenek 3: her iş parçacığı için SimpleDateFormat farklı bir örneğini saklamak için bir ThreadLocal Oluşturun.
private ThreadLocal<SimpleDateFormat> tl = new ThreadLocal<SimpleDateFormat>();
public String formatDate(Date d) {
SimpleDateFormat sdf = tl.get();
if(sdf == null) {
sdf = new SimpleDateFormat("yyyy-MM-hh");
tl.set(sdf);
}
return sdf.format(d);
}
CEVAP
SimpleDateFormat yaratıyor expensive. Nadiren yaptığı sürece bu kullanmayın.
Eğer engelleme biraz yaşayabilirsen TAMAM. Eğer() kullanın formatDate pek kullanılmaz.
Hızlı EĞER iş parçacıkları (thread pool) yeniden seçeneği. 2. Daha fazla bellek kullanır ve daha yüksek başlangıç masrafı var.
Uygulamalar için de 2. ve 3. uygun seçenekler vardır. En iyi durumda olan kullanma durumu bağlıdır. Erken optimizasyon dikkat edin. Eğer bu bir sorun olduğunu düşünüyorsanız, sadece yap.
3 parti tarafından kullanılan kütüphaneler için 3 seçeneği kullanmak istiyorum.
MySQL yeni kullanıcı oluşturmak ve bir...
Erişim dizi php bir işlev tarafından d...
Bir HTTP erişim oturum durumu miyim?...
:&Hata quot;sanal Podfile ile senkroni...
Planlanan " anlamı, özel korumalı&...