2011-08-08 13 views

答えて

2

そのAPIを設計した人が答えない限り、その質問に対する十分な答えが見つかるかどうかはわかりませんが、「デバッグとテスト」のためだと言います。

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

yep ...マルチスレッド環境では、この値は信頼できません。私はこのクエストにちょうどなぜ長く使っているのだろうかと尋ねます...ありがとう! – DeepNightTwo

2

未来払いですか?

ちょうどCountDownLatch(int)が唯一の既存のコンストラクタであるため、誰かがその種のものを使いこなした場合に、Java 8でCountDownLatch(long)を追加できなかったわけではありません。

この値は単なる指標であり、信頼性がありません。

1

intが符号なし整数を格納するために使用されているため、0から2 ** 32-1までカウントしていると思います。 unsigned intをintに格納することはできますが、計算を行う際には値をlongに昇格するほうがずっと簡単です。

+0

ありがとう、これはたくさん説明します。 – DeepNightTwo

1

私は単純な見落としがあります。

ソースコードを見ると、インプリメンテーションは内部クラスSyncを使用しています。 SyncにはgetCount()もあり、それはintを返します。つまり、実装全体はintに基づいています。 1つの外部ゲッターだけが長く使用されています。私はそれに全く意味がないと思う。

関連する問題