私はコードを調べました。すべてintです - CountDownLatchコンストラクタに渡されるパラメータはint、Syncの変数はint、Sync.getCount()の戻り値の型はintです。しかし、CountDownLatch.getCount()はlongを返しますか?なぜかと思う。なぜCountDownLatch.getCount()はint型ではなく長い型を返しますか?
7
A
答えて
2
そのAPIを設計した人が答えない限り、その質問に対する十分な答えが見つかるかどうかはわかりませんが、「デバッグとテスト」のためだと言います。
public long getCount() {...} // just for debugging and testing
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つの外部ゲッターだけが長く使用されています。私はそれに全く意味がないと思う。
関連する問題
- 1. なぜpython statistics.mean()は浮動小数点型ではなくint型を返します
- 2. List [Int、Int]が有効なScala型でないのはなぜですか?
- 3. strtokはint型を返します
- 4. int型ではなくDataframeオブジェクトのdtype
- 5. なぜmongoTemplateが数値型(int)を返すのですか?列の値はdouble型ですか?
- 6. なぜscanfからdouble型ではなくfloat型になるのですか?
- 7. int型はsscanfでは動作しますが、int16_tでは動作しないのはなぜですか?
- 8. int型からint型への変換が動作しない
- 9. 長期的なスケーラビリティのためのint型またはlong型の変数
- 10. なぜmath.Pow10(e int)はint64ではなくfloat64を返しますか?
- 11. mysql_queryはint型/ fload型の文字列型のみを返します
- 12. はint型とunsigned int型
- 13. Python readline()は、int型またはfloat型に変換されない文字列を返します。
- 14. エラーは、引数に '* int型' から 'int型**' を変換できません '1' 'int型のショー(int型*)' に
- 15. Glibのデータ型を使う方が良いのはなぜですか?(例えば、 `int`ではなく` gint`)?
- 16. int型のstd :: numeric_limits :: digits10が1つ少ないのはなぜですか?
- 17. 警告:フォーマット '%d'は 'int'型を想定していますが、引数2は 'int(*)(int *、int *、int)'型です。
- 18. 長い文字列リテラルの型はlong int *ですか?
- 19. はなぜ「形式は、id型を指定しますが、引数がint型持っている」警告
- 20. Appceleratorの:BOMStream BOMStreamWithFileAndSys(int型、off_tでは、size_t型、int型、char型*、BomSys *)
- 21. ブール型のデータ型がMySQLで動作しないのはなぜですか?
- 22. Bitmap.createBitmap(ビットマップソース、int型のx、int型のy、int型の幅、int型の高さ)間違ったビットマップを返し
- 23. なぜマッチアームの `continue`は型チェックをしなくてもいいですか?
- 24. は(int型?)NULL可能int型の値を大きく
- 25. (int型**)はmalloc(はsizeof(int型*))
- 26. VB6:ランタイムエラー '13':intでint型を設定すると型が一致しない
- 27. Scala:抽象型メンバーが型パラメータと等しい=> =等しくないのはなぜですか?
- 28. 型は、その型を含む名前空間の型に依存しないのはなぜですか?
- 29. java.util.zip.CRC32.getValue()はintではなくlongを返すのはなぜですか?
- 30. String型のためのType.IsByRefは、String型が参照型の場合、falseを返すのはなぜですか?
yep ...マルチスレッド環境では、この値は信頼できません。私はこのクエストにちょうどなぜ長く使っているのだろうかと尋ねます...ありがとう! – DeepNightTwo