我查看了代码,所有的内容都是int类型--传递给CountDownLatch构造函数的参数是int类型,在Sync中的变量也是int类型,并且Sync.getCount()方法的返回类型也是int类型。但是CountDownLatch.getCount()方法却返回long类型?不知道为什么。
我查看了代码,所有的内容都是int类型--传递给CountDownLatch构造函数的参数是int类型,在Sync中的变量也是int类型,并且Sync.getCount()方法的返回类型也是int类型。但是CountDownLatch.getCount()方法却返回long类型?不知道为什么。
我有一个不同的想法:简单的疏忽。
当你查看源代码时,你会发现实现使用了一个内部类Sync。Sync也有一个getCount()方法——但它返回int类型。换句话说,整个实现都基于int类型;只有那一个外部的getter使用了long类型。我认为这毫无意义。
我不确定除非设计该API的人回答,否则你是否能找到足够的答案,但它确实说是用于“调试和测试”。
public long getCount() {...} // just for debugging and testing
未来保障?
仅仅因为 CountDownLatch(int) 是唯一存在的构造函数,并不意味着在 Java 8 中不能添加 CountDownLatch(long) ,如果有人能够想出这种用途的话。
该值只是指示性的,无法可靠地使用。