Có một cách để chờ đợi vào một AtomicInteger
vì vậy mà tôi không cần phải giữ ngủ chủ đề hiện tại của tôi và liên tục kiểm tra trên AtomicInteger
như thế nàyCó cách nào để chờ đợi sự thay đổi trên một số nguyên nguyên tử
while(atomicInt.get() >= 0) {
Thread.sleep(1000)
}
tôi biết có một điều như một CountDownLatch
nhưng điều đó chỉ cho phép tôi để giảm giá trị tôi cũng cần nó để có thể tăng
cốt truyện tiếp theo - tôi có một vòng lặp tạo chủ đề và tôi cần phải chờ đợi vào một của các chủ đề thực hiện để kết thúc trước khi tạo một chủ đề mới. Tuy nhiên tôi đang sử dụng Executors.newFixedThreadPool(numThreads)
và cách duy nhất để chờ đợi có vẻ như gọi phương thức shutdown đang chờ kết thúc và sau đó tạo một threadPool mới thay vào đó tôi đã sử dụng một số nguyên nguyên để theo dõi số lượng luồng đang chạy và/hoặc trên hàng đợi để khi số đó giảm, tôi có thể tiếp tục với vòng lặp.
Câu trả lời ngắn gọn là không. Bạn có thể chỉnh sửa câu hỏi của mình và giải thích thêm một chút không _why_ bạn muốn điều này? Có thể có các lựa chọn thay thế khác. – Gray
tại sao không sử dụng WaitForSingleObject để chờ. Tạo ra một vòng lặp trong khi chờ đợi là một ý tưởng khủng khiếp. – CyprUS
Chờ đợi trên một đối tượng nguyên tử hoàn toàn đánh bại mục đích của một thuật toán chờ đợi. Bạn đang làm sai. – maerics