2013-08-19 35 views
5

ı kesme noktaları koymak Java Çoklu kullanım programı ayıklama sırasında. start metodu çalışmaya başladıktan sonra kontrol çalışmazsa, hata ayıklama prosedürünü bana bildirebilirsiniz. senin kesme noktası ana iş parçacığı olduğundantutulması Java çoklu programı hata giderme

örnek kod

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

daha açık ve net olması ya da bazı kodu girin. – GGrec

cevap

7

Debugger, ana iş parçacığı ile başlar.
t.start() yeni bir ileti dizisi oluşturur.
Ancak hata ayıklayıcı, ana iş parçacığının kendisiyle devam edecektir.

Yeni oluşturulan dizgede hata ayıklamak istiyorsanız, run() yönteminde bir kesme noktası da ayarlamanız gerekir. Daha sonra hata ayıklayıcı denetimi yeni oluşturulan dizeye gider, ancak kullanıcı tarafından görünmez. yeni oluşturulan iş parçacığı run() yönteminde kontrolünü görmek istiyorsanız

, o zaman aşağıdaki adımları takip etmek zorunda -

  1. main() yöntemiyle birlikte run() yönteminde bir kesme noktası koyun. Eğer deyimi t.start() çarpana kadar programı ayıklama
  2. Başlat.
  3. t.start() tamamladıktan sonra "ayıklama" görünümüne gidin. Orada çalışan 2 konuları bulacaksınız (Sen giderek tutulma "ayıklama" görünümünü bulabilirsiniz "Pencere -> Debug -> Görünüm göster")..
    • ilk bir ana konuyu çalıştırma yönteminde kontrol görmek için ikinci iplik üzerinde
    • İkinci bir yeni oluşturulan vida dişi (örneğin, [Konu-1])
  4. tıklamadır. senin iplik yürütme tamamlanmasından sonra
  5. , yine "ayıklama" görünümüne gidin ve ana iş parçacığı ayıklamaya devam etmek ana iş parçacığı tıklayın.

Not: iplik sonuna doğru 3 adımdan sonra ana iş parçacığı devam ederse, o zaman yeni bir iş parçacığı hata ayıklamak için mümkün olmayacaktır.