Tôi đang tạo một ứng dụng Java với một luồng logic ứng dụng và luồng truy cập cơ sở dữ liệu. Cả hai đều tồn tại suốt đời của ứng dụng và cả hai cần phải chạy cùng một lúc (một cuộc nói chuyện với máy chủ, một cuộc nói chuyện với người dùng; khi ứng dụng được khởi động hoàn toàn, tôi cần cả hai hoạt động).
Tuy nhiên, khi khởi động, tôi cần đảm bảo rằng ban đầu luồng ứng dụng sẽ đợi cho đến khi luồng db sẵn sàng (hiện được xác định bằng cách bỏ phiếu một phương thức tùy chỉnh dbthread.isReady()
). Tôi sẽ không phiền nếu luồng ứng dụng chặn cho đến khi luồng db đã sẵn sàng.
Thread.join()
không giống như một giải pháp - luồng db chỉ thoát khi tắt ứng dụng.
while (!dbthread.isReady()) {}
loại công việc, nhưng vòng lặp trống tiêu thụ rất nhiều chu kỳ bộ xử lý.
Còn ý tưởng nào khác không? Cảm ơn.