से मैं निम्नलिखित की तरह एक जावा धागा है:वापसी मान जावा धागे
public class MyThread extends Thread {
MyService service;
String id;
public MyThread(String id) {
this.id = node;
}
public void run() {
User user = service.getUser(id)
}
}
मैं लगभग 300 आईडी है, और सेकंड के हर जोड़े को - मैं आईडी से प्रत्येक के लिए एक फोन करना धागे ऊपर आग। उदाहरण के लिए।
for(String id: ids) {
MyThread thread = new MyThread(id);
thread.start();
}
अब, मैं बजाय बनाने 300 डेटाबेस हर 2 सेकंड सम्मिलित करता है की, प्रत्येक धागे से परिणाम एकत्रित करते हैं, और डेटाबेस के लिए एक बैच डालने करना चाहते हैं।
कोई विचार यह है कि मैं इसे कैसे पूरा कर सकता हूं?
मेरे मामले में, कुछ सेवा कॉल कभी वापस नहीं आ सकती हैं या वापसी के लिए बहुत अधिक समय ले सकती हैं। तो 'इंतजार करें' के साथ 'awaitTermination (long timeout)' जाने के तरीके की तरह दिखता है। इसलिए मैं इस जवाब को स्वीकार कर रहा हूं। इच्छा है कि मैं @ डेव के जवाब भी स्वीकार कर सकता हूं। – Langali
उस स्थिति में, आप 'invokeAll' के ओवरलोडेड संस्करण का उपयोग कर सकते हैं जो टाइमआउट पैरामीटर लेता है। मैं यह दिखाने के लिए अपना उत्तर अपडेट करूंगा कि कैसे। – erickson
धन्यवाद। मैंने किसी भी तरह इसे अनदेखा किया। – Langali