2013-08-19 9 views
5

जावा मल्टीथ्रेडिंग प्रोग्राम को डिबग करते समय मैंने ब्रेकपॉइंट्स डाले। स्टार्ट विधि के बाद नियंत्रण का आह्वान करना menthod चलाने वाला नहीं है, तो कृपया मुझे डीबग प्रक्रिया बताएं।ग्रहण मल्टीथ्रेड प्रोग्राम डीबगिंग

नमूना कोड

class Test extends Thread { 
    public static void main(String[] args) { 
     try { 
      Thread t = new Thread(new Test()); 
      t.start(); 
      t.start(); 
     } catch (Exception e) { 
      System.out.print("e "); 
     } 
    } 

    public void run() { 
     for(int i = 0; i < 2; i++) 
      System.out.print(Thread.currentThread().getName() + " "); 
    } 
} 
+0

कृपया अधिक स्पष्ट या कुछ कोड प्रदान करें। – GGrec

उत्तर

7

डीबगर, मुख्य थ्रेड के साथ शुरू होता है, क्योंकि आपकी ब्रेकप्वाइंट मुख्य थ्रेड में है।
t.start() एक नया धागा spawns।
लेकिन डीबगर मुख्य धागे के साथ ही जारी रहेगा।

यदि आप नए बनाए गए धागे को डीबग करना चाहते हैं, तो आपको run() विधि में ब्रेकपॉइंट सेट करना होगा। फिर डीबगर नियंत्रण नए बनाए गए धागे पर जाता है, लेकिन यह उपयोगकर्ता के लिए अदृश्य है।

आप नव निर्मित धागे की run() विधि में नियंत्रण को देखने के लिए चाहते हैं, तो नीचे दिए चरणों का पालन करना -

  1. main() विधि के साथ run() विधि में एक ब्रेकपाइंट रखो।
  2. जब तक आप t.start() स्टेटमेंट को हिट नहीं करते तब तक प्रोग्राम डिबग करना प्रारंभ करें।
  3. t.start() को पूरा करने के बाद, "डीबग" दृश्य पर जाएं। वहां आपको 2 थ्रेड चलेंगे। (आप "विंडो -> व्यू देखें -> डीबग" पर जाकर ग्रहण में "डीबग" दृश्य पा सकते हैं।
    • पहले एक मुख्य थ्रेड
    • दूसरा एक नव निर्मित है धागा (जैसे [थ्रेड-1])
  4. दूसरे धागे पर रन विधि में नियंत्रण को देखने के लिए क्लिक करें है।
  5. अपने थ्रेड निष्पादन को पूरा करने के बाद, "डीबग" पर जाएं और फिर मुख्य दृश्य थ्रेड डिबगिंग के साथ जारी रखने के लिए मुख्य थ्रेड पर क्लिक करें।

नोट: आप धागा के अंत में 3 कदम के बाद मुख्य थ्रेड के साथ जारी है, तो आप नहीं अपना नया धागा डिबग करने के लिए सक्षम हो जाएगा।

संबंधित मुद्दे