2011-08-08 18 views

cevap

2

Bu soruyu yanıtlayan bir kişi yanıt vermedikçe, bu soruya yeterli bir yanıt bulacağınızı bilmiyorum, ancak bunun "hata ayıklama ve sınama" olduğunu söylüyor.

public long getCount() {...} // just for debugging and testing 
+0

yep ... Multithread env'de, bu değer güvenilir değildir. Bu arayışa sadece neden uzun sürdüğünü merak etmesini rica ediyorum ... Teşekkürler! – DeepNightTwo

2

Futureproofing?

Sadece var olan tek yapıcı CountDownLatch (int) olduğundan, bu herhangi bir şey için bir kullanıcı ile birlikte gelirse, Java 8'de CountDownLatch (uzun) ekleyemediğiniz anlamına gelmez.

Değer, yalnızca güvenilir değil, yalnızca belirleyicidir.

1

Bunun nedeni, int'nin işaretsiz bir int saklamak için kullanıldığından, 0 ile 2 ** 32-1 arasında sayılmasıdır. Bir imzasız int'i bir int'ye kaydedebilmenize rağmen, onunla hesaplamalar yaparken, bu değeri oldukça doğal bir şekilde karşılayabilecek bir değeri uzun süre yükseltmek çok daha kolaydır.

+0

Teşekkürler, bu çok açıklıyor. – DeepNightTwo

1

Farklı bir fikrim var: basit gözetim.

Kaynak koduna döndüğünüzde, uygulamanın bir iç sınıf Sync kullandığını göreceksiniz. Senkronizasyon da bir getCount() 'a sahiptir ve bu int int döndürür. Başka bir deyişle: tüm uygulama int'ye dayanmaktadır; ve sadece bir dış alıcı uzun kullanıyor. Sanırım bunun içinde kesinlikle bir anlamı yok.

İlgili konular