2011-08-08 31 views

Trả lời

2

Tôi không biết liệu bạn có tìm thấy câu trả lời đầy đủ cho câu hỏi đó hay không trừ khi ai đó thiết kế API đó trả lời, nhưng nó nói là "gỡ lỗi và thử nghiệm".

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

yep ... Trong env đa luồng, giá trị này không đáng tin cậy. Tôi hỏi questing này chỉ tự hỏi tại sao sử dụng lâu ... Cảm ơn! – DeepNightTwo

2

Futureproofing?

Chỉ vì CountDownLatch (int) là hàm tạo duy nhất hiện tại, điều đó không có nghĩa là bạn không thể thêm CountDownLatch (dài) trong Java 8, nếu có ai đó sử dụng loại đó.

Giá trị chỉ mang tính biểu thị, không đáng tin cậy.

1

Tôi đoán đó là vì int đang được sử dụng để lưu trữ một int không dấu, đếm từ 0 đến 2 ** 32-1. Mặc dù bạn có thể lưu trữ một int không dấu trong một int, khi thực hiện các phép tính với nó, nó dễ dàng hơn nhiều để quảng bá giá trị trong một thời gian dài, mà có thể chứa phạm vi đó khá tự nhiên.

+0

Cảm ơn, điều này giải thích rất nhiều. – DeepNightTwo

1

Tôi có một ý tưởng khác: giám sát đơn giản.

Khi bạn chuyển sang mã nguồn, bạn sẽ thấy rằng việc triển khai sử dụng đồng bộ hóa lớp nội bộ. Đồng bộ cũng có một getCount() - và cái đó trả về int. Nói cách khác: toàn bộ việc thực hiện dựa trên int; và chỉ có một bộ thu phát bên ngoài đang sử dụng lâu. Tôi nghĩ rằng hoàn toàn không có ý nghĩa trong đó.

Các vấn đề liên quan