मैं एक एप्लिकेशन-लॉजिक-थ्रेड और एक डेटाबेस-एक्सेस-थ्रेड के साथ एक जावा एप्लिकेशन बना रहा हूं। वे दोनों पूरे जीवनकाल आवेदन के लिए बने रहते हैं और दोनों को उसी समय चलने की आवश्यकता होती है (सर्वर से बात करता है, उपयोगकर्ता से बात करता है; जब ऐप पूरी तरह से शुरू हो जाता है, तो मुझे काम करने के लिए दोनों की आवश्यकता होती है )।
हालांकि, स्टार्टअप पर, मुझे यह सुनिश्चित करने की ज़रूरत है कि शुरू में ऐप थ्रेड तब तक इंतजार करता है जब तक कि डीबी थ्रेड तैयार नहीं हो जाता है (वर्तमान में एक कस्टम पद्धति को मतदान करके निर्धारित किया जाता है dbthread.isReady())। अगर db धागा तैयार नहीं होता है तो मुझे ऐप थ्रेड ब्लॉक करने में कोई दिक्कत नहीं होगी।
Thread.join() समाधान की तरह नहीं दिखता है - DB थ्रेड केवल ऐप शटडाउन से बाहर निकलता है।
while (!dbthread.isReady()) {} काम करता है, लेकिन खाली लूप में बहुत अधिक प्रोसेसर चक्र होता है।
कोई अन्य विचार? धन्यवाद।
