java.lang.OutOfMemoryError bei der wiederholten Erzeugng von Threads

HPL

Aktives Mitglied
Ich habe eine Übungsaufgabe aus dem Netz gefischt und bearbeitet.

Dort sollten 100 Threads erzeugt werden, die dann alle eine nur ihnen eigene Nummer ausdrucken.

Ich habe dazu zwei Klassen geschrieben - diese:

Java:
class TestThread implements Runnable
{

String s;
public TestThread(String s){ this.s=s;   }

 public void run(){

     System.out.println(this.s);

}

  public static void main(String[] args){

   for(int i=1;i<=100;i++){

   TestThread m = new TestThread(new Integer(i).toString());
   Thread t = new Thread(m);

   t.start();

   }
  }
}


...und diese:

Java:
class TestThread extends Thread{

 String s;
 public TestThread(String s){ this.s = s;  }

 public void run(){   System.out.println(this.s);     }

 public static void main(String[] args)
{
 for(int i=1;i<=100;i++){
      TestThread m = new TestThread(new Integer(i).toString());
      m.start();
   }
}

}


Bei der unteren der beiden ist alles OK durchgelaufen.


Bei der OBEREN jedoch ist nach einigen Durchläufen eine Fehlermeldung aufgetreten (siehe Anhang).

Das Problem ist mit Sicherheit nicht dringend, aber: Wieso war er plötzlich nicht mehr in der Lage, einen neuen "nativen Thread" zu erzeugen? Weiß da jemand was?
 

Anhänge

  • scrot.JPG
    scrot.JPG
    21,1 KB · Aufrufe: 45
Zuletzt bearbeitet:

HoaX

Top Contributor
Bei mir funktioniert das obere?!

Evtl. willst du mal die komplette TestThread.java und TestThread.class irgendwo hochladen?
 

HPL

Aktives Mitglied
@HoaX:

Entschuldige, beim Kopieren der unteren der beiden Klassen Klassennamen ist wohl der Klassenname verloren gegangen.

Ich habe zudem festgestellt, dass derselbe fehler auch bei der unteren Klasse auftritt, habe aber keine Ahnung, weshalb.


Wenn ich es nämlich so schreibe:

Java:
class TestThread extends Thread{

 String s;
 public TestThread(String s){ this.s=s;

   this.start();
}

  public void run(){  System.out.println(this.s);  }

 public static void main(String[] args){

    for(int i=1;i<=100;i++){
          new TestThread(new Integer(i).toString());
  }
}
}
 
Zuletzt bearbeitet:

HPL

Aktives Mitglied
Gestern habe ich es getestet, da hat er nach zimelich vielen Durchläufen den java.lang.OutOfMemoryError nicht gebracht. Gerade jetzt habe ich es wieder getestet, da hat er ihn schon beim zweiten Ausführen geworfen. Die Frage ist freilich auch bei diesem Programm, was den Fehler verursachen könnte.
 

Volvagia

Top Contributor
Habs mehrmals ausgeführt und gab nie Probleme. Auch als ichs auf Short.MAX_VALUE hochgeschraubt habe. Hab auch zusammen mit Runtime#freeMemory() ausgegeben, er ist (sofern ich das beurteilen kann) immer zwischen 15 und 10 MB geblieben. Natürlich ohne eigene VM-Parameter, Start direkt aus Eclipse.

btw. this.start niemals im Konstruktor einer nicht finalisierten Klasse aufrufen und "new Integer(i).toString()"? :autsch: Integer.valueOf? String.valueOf? Wozu überhaupt umwandeln?
 
Zuletzt bearbeitet:

HPL

Aktives Mitglied
Habs mehrmals ausgeführt und gab nie Probleme.

Ich greife über Putty auf einen Rechner zu. Vielleicht liegt hat es damit zu tun? Zumal ich das letzte von mir angegebene Programm gestern testete, da gab es irgendwie auch keine Probleme.



btw. this.start niemals im Konstruktor einer nicht finalisierten Klasse aufrufen

Ich werde das natürlich beherzigen, würde in diesem Zusammenhang aber auch gerne mal fragen, wieso this.start nicht in einer nicht finalisierten Klasse aufgerufen werden darf. Wenn ich aus der Klasse weiter vererbe, werden dann die Subklassen etwa auch gestartet? (Ich bin wirklich ein Anfänger...)
 

Volvagia

Top Contributor
Ich greife über Putty auf einen Rechner zu. Vielleicht liegt hat es damit zu tun? Zumal ich das letzte von mir angegebene Programm gestern testete, da gab es irgendwie auch keine Probleme.
Denke ich eher nicht. Ich habs eben auch auf meinen vServer getestet, lief bis 100 ohne Probleme. Steure ich auch über PuTTy. Und auf dem habe ich selbst keinen RAM, musste Xmx auf 2 MB runterschrauben, damit es ging.

Ich werde das natürlich beherzigen, würde in diesem Zusammenhang aber auch gerne mal fragen, wieso this.start nicht in einer nicht finalisierten Klasse aufgerufen werden darf. Wenn ich aus der Klasse weiter vererbe, werden dann die Subklassen etwa auch gestartet? (Ich bin wirklich ein Anfänger...)
Klar. Jede Klasse intialisiert ein Exemplar ihrer Superklasse und ruft den Standartkonstruktor auf (sofern einer existiert bzw. per super nicht etwas anderes angegeben wurde.) Und das noch bevor der Subklassen-Konstruktor fertig abgearbeitet wurde. (FindBugs)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L java.lang.OutOfMemoryError: Java heap space Allgemeine Java-Themen 10
J java Thread java.lang.OutOfMemoryError: Java heap space Allgemeine Java-Themen 7
G Error: java.lang.OutOfMemoryError: Java heap space Allgemeine Java-Themen 2
S java.lang.OutOfMemoryError: Java Allgemeine Java-Themen 22
M java.lang.OutOfMemoryError Allgemeine Java-Themen 2
F java.lang.OutOfMemoryError: Java heap space Allgemeine Java-Themen 22
S fehlermeldung java.lang.OutOfMemoryError Allgemeine Java-Themen 5
H Skalieren von Image -> java.lang.OutOfMemoryError - WARUM Allgemeine Java-Themen 18
G jTable-Problem --> java.lang.OutOfMemoryError Allgemeine Java-Themen 5
F java.lang.OutOfMemoryError Allgemeine Java-Themen 13
M java.lang.OutOfMemoryError Allgemeine Java-Themen 7
F java.lang.OutOfMemoryError Allgemeine Java-Themen 17
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
P9cman java.Lang Klassen fehlen in JRE System Library Allgemeine Java-Themen 1
F Fehlermeldung: java.lang.NoClassDefFoundError: org/apache/commons/net/ntp/NTPUDPClient Allgemeine Java-Themen 6
P Swing Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: npoints > xpoints.length || npoints > ypoints.length Allgemeine Java-Themen 5
S Exception in thread "main" java.lang.NullPointerException at FamilienApp.main(FamilienApp.java:15) Allgemeine Java-Themen 1
E HILFE !! Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils Allgemeine Java-Themen 4
J Threads - java.lang.IllegalThreadStateException Allgemeine Java-Themen 6
javaerd Binomialkoeffizient ausrechnen, Exception in thread "main" java.lang.StackOverflowError Allgemeine Java-Themen 6
T Eclipse Dll einbinden java.lang.UnsatisfiedLinkError nur in Eclipse nicht via javac Allgemeine Java-Themen 1
V Compiler-Fehler Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 125, Size: 125 Allgemeine Java-Themen 11
J Exception in thread "main" java.lang.NoClassDefFoundError Allgemeine Java-Themen 4
H Java Mail Fehlermeldung: java.lang.NoClassDefFoundError: javax/mail/internet/AddressException Allgemeine Java-Themen 5
Crooda Compiler-Fehler java.lang.NoClassDefFoundError bitcoinj Allgemeine Java-Themen 1
I Fehler java.lang.NullPointerException Allgemeine Java-Themen 5
L Eigenener ClassLoader wirft java.lang.NoClassDefFoundError Allgemeine Java-Themen 0
H java.lang.NullPointerException Allgemeine Java-Themen 5
L Interpreter-Fehler java.lang.NullPointerException Allgemeine Java-Themen 17
F java.lang.ClassNotFoundException: .class Allgemeine Java-Themen 5
S java.lang.NoClassDefFoundError Allgemeine Java-Themen 5
J Compiler-Fehler java.lang.StringIndexOutOfBoundsException Allgemeine Java-Themen 12
D java.lang.TypeNotPresentException Allgemeine Java-Themen 3
A java.lang.NullPointerException bei Schleife Allgemeine Java-Themen 3
S javadoc java.lang.NullPointerException Allgemeine Java-Themen 2
B Variable class in java.lang.Object Allgemeine Java-Themen 11
N java.lang.IllegalMonitorStateException: object not locked by thread before notify() Allgemeine Java-Themen 2
T ProcessBuilder (java.lang.NoClassDefFoundError) Allgemeine Java-Themen 2
T java.lang.AssertionError: Allgemeine Java-Themen 4
T java.lang.ClassCastException: Allgemeine Java-Themen 4
P Java Probleme - java.lang.Thread.run(Unkown Source) Allgemeine Java-Themen 10
B java.lang.UnsupportedClassVersionError Allgemeine Java-Themen 12
M cannot be cast to java.lang.Comparable Allgemeine Java-Themen 5
B JNI - java.lang.UnsatisfiedLinkError Allgemeine Java-Themen 21
E Interpreter-Fehler java.lang.ExceptionInInitializerError Allgemeine Java-Themen 12
C java.lang.ClassCastException Allgemeine Java-Themen 3
P Fehler beim Programmstart: java.lang.NoClassDefFound Allgemeine Java-Themen 12
T java.lang.ClassCastException Allgemeine Java-Themen 7
B Java - java.lang Allgemeine Java-Themen 12
sylo java.lang.NoSuchMethodError: Obwohl Methode vorhanden Allgemeine Java-Themen 8
MonsterBit java.lang.NullPointerException Allgemeine Java-Themen 2
H Applet java.lang.reflect.InvocationTargetException Allgemeine Java-Themen 9
M SerialPort RS232 : java.lang.NoSuchFieldError: eis Allgemeine Java-Themen 2
U java.lang.ClassNotFoundException: .jar Allgemeine Java-Themen 8
G NoClassDefFoundError: java/lang/Object Allgemeine Java-Themen 4
W java.lang.ClassCastException Allgemeine Java-Themen 10
N Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.p Allgemeine Java-Themen 4
N java.lang.InstantiationException Allgemeine Java-Themen 10
J java.lang.NullPointerException bei Threadprogrammierung Allgemeine Java-Themen 9
D replaceAll => no such java.lang.NoSuchMethodError Allgemeine Java-Themen 5
G java.lang.LinkageError: loader constraints violation. Allgemeine Java-Themen 3
O java.lang.NumberFormatException für normalen integer Allgemeine Java-Themen 4
G Javadoc generiert keine Links zu java.lang Klassen? Allgemeine Java-Themen 4
Y java.lang.UnsupportedClassVersionError: Allgemeine Java-Themen 5
G java.lang.ClassCastException Allgemeine Java-Themen 3
J Fehler: java.lang.NullPointerException Allgemeine Java-Themen 2
E java.lang.outofmemory über windows-cmd ändern Allgemeine Java-Themen 6
J Folgender Fehler: java.lang.NullPointerException Allgemeine Java-Themen 4
I java.lang.UnsatisfiedLinkError: Allgemeine Java-Themen 8
J Exception in thread "main" java.lang.OutOfMemoryEr Allgemeine Java-Themen 26
J java.lang.StackOverflowError Debugging? Allgemeine Java-Themen 51
D java.lang.UnsatisfiedLinkError Allgemeine Java-Themen 5
S Fortran Funktion mit JNI aufrufen: java.lang.UnsatisfiedLink Allgemeine Java-Themen 2
S java.lang.UnsatisfiedLinkError mit JNI Allgemeine Java-Themen 6
reibi java.lang.Class - Resource - Solaris Allgemeine Java-Themen 17
S Exception in Thread "main" java.lang.NoClassDef. b Allgemeine Java-Themen 2
M java.lang.UnsupportedClassVersionError: Bad version number i Allgemeine Java-Themen 5
O "AWT-EventQueue-1" java.lang.ArrayIndexOutOfBounds Allgemeine Java-Themen 6
B Exception in thread "main" java.lang.NoClassDefFou Allgemeine Java-Themen 12
G java.lang.NullPointerException JFreeChart Allgemeine Java-Themen 5
E Java Fehlermeldung java.lang.NoClassDefFoundError Allgemeine Java-Themen 3
G Problem mit java.lang.reflect.Field Allgemeine Java-Themen 15
P Kompilerfehler: at java.lang.ClassLoader.loadClassInternal(U Allgemeine Java-Themen 16
M java.lang.NullPointerException im Chatclient Allgemeine Java-Themen 12
H java.lang.ExceptionInInitializerError Allgemeine Java-Themen 7
D java.lang.IllegalMonitorStateException: current thread not Allgemeine Java-Themen 3
P Exception in thread "main" java.lang.NoClassDefFou Allgemeine Java-Themen 3
P Exception in thread "main" java.lang.NoClassDefFou Allgemeine Java-Themen 15
P Exception in thread "main" java.lang.NoClassDefFou Allgemeine Java-Themen 3
T Profifrage: java.lang.StackOverflowError bei BigInteger Allgemeine Java-Themen 27
W java.lang.ClassNotFoundException Allgemeine Java-Themen 10
B Exception in thread "main" java.lang.OutOfMemoryEr Allgemeine Java-Themen 5
B java.lang.NullPointerException Allgemeine Java-Themen 11
S Exception in thread "main" java.lang.StringIndexOu Allgemeine Java-Themen 9
J java.lang.ArrayIndexOutOfBoundsException Allgemeine Java-Themen 2
P Hilfe zu java.lang.Object Allgemeine Java-Themen 3
K java.lang.reflect - Getter und Setter ermitteln Allgemeine Java-Themen 8
G Java.lang.Compiler Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben