Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich versuche eine Endlosschleife in mein Programm einzufügen.
Leider funktioniert es nicht wie gedacht.
Daher habe ich nun nur den wichtigen Code nochmal herausgenommen.
Problem: die run-Funktion wird nur einmal durchlaufen.
Java:
public class testRun extends Thread {
public static void main(String[] args) {
Thread t1 = new Thread( new testRun() );
t1.start();
}
public void run() {
System.out.println("Hallo!");
}
}
natürlich wird sie das. Wenn du eine Endlosschleife haben willst, dann musst du halt eine schreiben:
Java:
public void run() {
while(...) {
...
}
}
Warum sollte die auch mehrmals aufgerufen werden? Durch Thread.start() wird nur dafür gesorgt, das die run-Methode in einem eigenständigen Thread läuft. Das du gerne eine Endlosschleife haben willst, weiß Java natürlich nicht, deswegen musst du es eben selbst reinschreiben.
Wieso willst du eine Endlosschleife gerade so umsetzen?
So funktioniert es auf deine Weise:
Java:
public class Test extends Thread {
public static void main(String[] args) {
new Test().run();
}
public void run() {
Thread t1 = new Thread( new Test() );
t1.start();
System.out.println("Hallo!");
}
}
Wenn es dir aber wirklich nur dadurch geht einen bestimmten Code immer und immer wieder durchzuführen, dann nimm doch eine normale Schleife?
Java:
public class Test {
public static void main(String[] args) {
boolean repeat = true;
do {
// tue irgendwas und setze irgendwann repeat auf false
System.out.println("Hallo!");
} while (repeat);
}
}
*Nachtrag: Da war wohl jemand schneller als ich mit antworten^^*
public class Test extends Thread {
public static void main(String[] args) {
new Test().run();
}
public void run() {
Thread t1 = new Thread( new Test() );
t1.start();
System.out.println("Hallo!");
}
}
@InfectedBytes: Ja das stimmt, er hat aber mit dieser Thread-Sache angefangen, da wollte wo den Fehler aufzeigen.
Richtig ist es aber eine normale Schleife zu nutzen!
Der ThreadErsteller will vermutlich eine Endlosschleife in einem separaten Thread machen und ist davon ausgegangen, das die run Methode automatisch endlos läuft.
Der ThreadErsteller will vermutlich eine Endlosschleife in einem separaten Thread machen und ist davon ausgegangen, das die run Methode automatisch endlos läuft.