Warum muss man manchmal in der RUnmethode sleep in eine schleife tun?

berserkerdq2

Bekanntes Mitglied
Des Öfteren habe ich gesehen, dass bei manchen Musterlösungen, wenn da stand stoppe den Thread jede Sekunde, man sowas gemacht hat, in der Runmethode:

Wiki:
while(true){
    try{
       sleep(1000);
     }catch{...}
    //Und folgend heir alles drinne, was die Runmethode ausführen soll
}

Also in einer whileschleife, die unendlich oft ausgeführt wird.
Andernfalls habe ich auch das gesehen:

Code:
//Befehel die ausgeführt werden sollen

try{
    sleep(1000);
}catch{...}
 (Ohne whileschleife, nur im try catch block)

Wann nutze ich was?
 
Beste Antwort
Erster ist ein Interval, zweiteres einfach eine Dauer. Das ist mehr eine Frage der Formulierung als zu Java.

50x pro Sekunde definiert ja nicht wie lange => unendlich
10 Sekunden pausieren ist eine klare Angabe => nicht unendlich

Oneixee5

Top Contributor
Das macht man einfach nur um zu verdeutlichen, dass es sich um einen Methodenaufruf handelt, welcher viel Zeit benötigt. Gleichzeitig hat es den Vorteil, dass der Thread schlafen geschickt wird und andere Programmteile ungestört aktiv werden können. So kann man einfach gut demonstrieren wie man mit Threads arbeiten kann.
 

berserkerdq2

Bekanntes Mitglied
Das macht man einfach nur um zu verdeutlichen, dass es sich um einen Methodenaufruf handelt, welcher viel Zeit benötigt. Gleichzeitig hat es den Vorteil, dass der Thread schlafen geschickt wird und andere Programmteile ungestört aktiv werden können. So kann man einfach gut demonstrieren wie man mit Threads arbeiten kann.
Aso, also ist es egal, was ich nutze? Weil manchmal ist es bei mir der Fall gewesen, wenn ich die Schleife entfernt habe, dass das Programm nicht mehr richtig funktioniert hat.
 

berserkerdq2

Bekanntes Mitglied
Na mit einer endlos Schleife läuft der Thread hallt endlos.
Alles was in der while ist wird immer wider ausgeführt.

Ohne wird der Code vor und hinter dem sleep nur einmal aufgeführt.
Bei einer Aufgabenstellung stand, der Thread soll 50x pro Sekunde pausieren, da war es in einer while, bei einer anderen stand pausiere den Thread um 10 sekunden. Musste man an dem pro Sekunde erkennen, dass es unendlich sein muss? Kann man das als Indikator nehmen?
 

thecain

Top Contributor
Erster ist ein Interval, zweiteres einfach eine Dauer. Das ist mehr eine Frage der Formulierung als zu Java.

50x pro Sekunde definiert ja nicht wie lange => unendlich
10 Sekunden pausieren ist eine klare Angabe => nicht unendlich
 
Beste Antwort

berndoa

Top Contributor
Bei einer Aufgabenstellung stand, der Thread soll 50x pro Sekunde pausieren, da war es in einer while, bei einer anderen stand pausiere den Thread um 10 sekunden. Musste man an dem pro Sekunde erkennen, dass es unendlich sein muss? Kann man das als Indikator nehmen?
Na, ein
Java:
while(true){ }
führt das, was innendrin steht, immer wieder aus, bis in alle Ewigkeit.
Endlosschleife schlicht und ergreifend.

Dein "50 mal pro Sekunde" heißt ja umgekehrt, dass ein bestimmter Code alle 60/50=1.2 Sekunden ausgeführt.
Also grob gesprochen der Codeblock ausgeführt wird, dann 1.2 sekunden gewartet wird, codeblock ausführen, 1.2 sekunden warten,
immer im Wechsel, bis in alle Ewigkeiten.
Da schreibt man dann sowas wie

Java:
while(true){
  Thread.sleep();
  //Code zum Ausführen

}

Das Andere ist halt, wnen du einmalig 10 Sekunden wartest oder so.
 

Neumi5694

Top Contributor
Ein Endlos Thread mit Sleep ist für eine exakte regelmäßige Ausführung übrigens nicht geeignet, er berücksichtigt nicht, wie lange die Code-Ausführung dauert.

Wenn du wirklich exakt alle x Sekunden was machen willst, verwende einen Timer, der gleicht das aus. Natürlich kann der auch keine Wunder wirken, wenn z.B. die Ausführungsdauer zu lang ist für die gewünschte Frequenz.
 

berndoa

Top Contributor
Ein Endlos Thread mit Sleep ist für eine exakte regelmäßige Ausführung übrigens nicht geeignet, er berücksichtigt nicht, wie lange die Code-Ausführung dauert.

Wenn du wirklich exakt alle x Sekunden was machen willst, verwende einen Timer, der gleicht das aus. Natürlich kann der auch keine Wunder wirken, wenn z.B. die Ausführungsdauer zu lang ist für die gewünschte Frequenz.
Das sind dann natürlich Fragen der genauen Aufgabenstellung, ob der 1 Sekunden Timer mit Beginn der Codeausführung zu laufen beginnen soll.
Oder die 1 Sekunde erst losgehen soll wenn der Code erfolgreich ausgeführt wurde.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Warum muss ich ein SSL cert immer manuell hinzufügen? Java Basics - Anfänger-Themen 46
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5
frager2345 Warum muss ich hier im Konstruktor meine Exeption nicht abfangen ? Java Basics - Anfänger-Themen 4
berserkerdq2 wie funktioniert contenthandler, was muss ich bei der Methode startElement und endElement tun? Java Basics - Anfänger-Themen 11
M Eine Methode die erkennt ob die ein gegebene zahl größer oder kleiner sein muss Java Basics - Anfänger-Themen 2
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
A OOP Bidirektionale Muss-Assoziation Java Basics - Anfänger-Themen 1
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
M Was muss ich verändern damit ich es so ausgegeben bekomme wie auf dem Foto? Java Basics - Anfänger-Themen 2
C Instanzen, wann muss ich Instanzen erzeugen & wo?) Java Basics - Anfänger-Themen 23
R Was muss ich an meinem Code ändern? Java Basics - Anfänger-Themen 2
L Worauf muss ich achten, wenn ich externe Bibliotheken für meine Anwendungen verwende? Java Basics - Anfänger-Themen 6
L Muss eine HttpURLConnection geschlossen werden? Java Basics - Anfänger-Themen 2
B Email versenden, muss Methode static sein? Java Basics - Anfänger-Themen 7
J Muss ich die externen jars mitgeben? Java Basics - Anfänger-Themen 8
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
Yjuq Generic Methode - Wie muss die List Definition aussehen? Java Basics - Anfänger-Themen 3
B 4 Strings, Anfangsbuchstaben muss unterschiedlich sein Java Basics - Anfänger-Themen 12
A Doppele Ketten- da muss einer rein! Java Basics - Anfänger-Themen 6
J App.jar muss im Projekt App als Bibliothek vorhanden sein?! Java Basics - Anfänger-Themen 1
S Wie muss ich die Generische Methode schreiben? Java Basics - Anfänger-Themen 6
S Warum muss ich die operationen mit AffineTransform in umgekehrter Reihenfolge ausfuehren..? Java Basics - Anfänger-Themen 4
K Wieso muss man finale statische Variablen sofort oder eben im Konstruktor initialisieren? Java Basics - Anfänger-Themen 2
G Interface java.util.Comparator: Wieso muss nur die Methode compare() implementiert werden Java Basics - Anfänger-Themen 2
X Muss man das immer so schreiben o.O Java Basics - Anfänger-Themen 3
Z Gleiches Verzeichnis für class und java unter Windows Muss? Java Basics - Anfänger-Themen 11
T Muss ein Parametertest immer eine eigene Testklasse sein? Java Basics - Anfänger-Themen 3
D Socket ---> Server Socket worauf muss ich achten? Java Basics - Anfänger-Themen 2
O Warum muss ich static? Java Basics - Anfänger-Themen 6
B Split, Exception - Obwohl es gehen MUSS Java Basics - Anfänger-Themen 3
B FileWriter close() muss? Java Basics - Anfänger-Themen 8
A Threads Eine Klasse muss auf Variable der Anderen warten. Java Basics - Anfänger-Themen 6
D Sound abspielen, wo muss die .wav liegen Java Basics - Anfänger-Themen 3
X Muss man Java können um Jython nutzen zu können? Java Basics - Anfänger-Themen 14
H Problem: Button muss zwei Mal angeklickt werden, bis Aktion ausgeführt wird Java Basics - Anfänger-Themen 4
S jcal4j/jlog4j Wo muss die Properties file rein? Java Basics - Anfänger-Themen 2
J Warum muss diese Methode static sein ?! Java Basics - Anfänger-Themen 7
D Muss ich eigentlich immer auf die Verwendung des richtigen Datentyps achten? Java Basics - Anfänger-Themen 7
S OOP Wie muss meine Klasse zu dieser main aussehen? Java Basics - Anfänger-Themen 5
D Muss ein Applet schreiben was Mittelwerte berechnet nur was mache ich falsch? Java Basics - Anfänger-Themen 11
T Warum muss diese Variable final deklariert werden? Java Basics - Anfänger-Themen 5
A Was muss ich ändern? Java Basics - Anfänger-Themen 2
E Object als Parameter das Unbekannt ist, aber ein bestimmtes Interface haben muss Java Basics - Anfänger-Themen 3
S Abstrakte Klasse, festlegen, dass Methode verändert werden muss. Java Basics - Anfänger-Themen 4
M Wann muss man eine Variable mit set-/get-Methoden in eine Bean schreiben? Java Basics - Anfänger-Themen 19
T Referenzvariablen - warum muss der Typ definiert werden? Java Basics - Anfänger-Themen 14
E Java-Programm mit Eclipse - wie muss ich anfangen. Java Basics - Anfänger-Themen 7
N Wann muss eine Methode - protected sein wann public wann. Java Basics - Anfänger-Themen 5
H Eine Abstrakte Klasse muss. Java Basics - Anfänger-Themen 7
G vector füllt sich immer weiter. wo muss ich ihn leeren? Java Basics - Anfänger-Themen 3
G Muss es immer extends sein ? Java Basics - Anfänger-Themen 9
F Muss ich TableCellEditor implementieren für checkbox abfrage Java Basics - Anfänger-Themen 3
N Muss ein thread aktive mit stop beendet werden? Java Basics - Anfänger-Themen 18
P 2. Jframe öffnen und 1. Jframe muss sich dann schließen ? Java Basics - Anfänger-Themen 4
S Tabelsorter von SUN, wie muss die MysQL Anbindung realisiert Java Basics - Anfänger-Themen 11
J Rekursiv muss dass laufen! Java Basics - Anfänger-Themen 11
S Muss Programm schreiben -BRAUCHE HILFE Java Basics - Anfänger-Themen 15
C Wie muss man hier aufrufen von 2 eigenen Klassen? Java Basics - Anfänger-Themen 6
F Wie muss ich mit Preferences umgehen. Java Basics - Anfänger-Themen 5
J Ich versteh den Fehler nich, was muss ich denn ändern? Java Basics - Anfänger-Themen 3
C Klasse muss auf Event in einer anderen Klasse reagieren Java Basics - Anfänger-Themen 7
G Class.forName: Wie muss die Klasse angegeben werden? Java Basics - Anfänger-Themen 3
M muß durch muss ersetzen Java Basics - Anfänger-Themen 7
G Wie muss classpath lauten? Package kompilieren/interpretiere Java Basics - Anfänger-Themen 4
ven000m try catch - was muss bei catch rein Java Basics - Anfänger-Themen 28
D Wert muss sich pro sek ändern aber wie? HELP! Java Basics - Anfänger-Themen 9
P wohin muss ich die packages kopieren? Java Basics - Anfänger-Themen 12
G wieso muss Textfield final sein? Java Basics - Anfänger-Themen 6
Linad Warum muss man Variablen einen Wert zuweisen? Java Basics - Anfänger-Themen 5
G Warum muss das Textfeld final sein? Java Basics - Anfänger-Themen 2
G JDOM: muss XML-Datei nach Änderung abgespeichert werden? Java Basics - Anfänger-Themen 2
C negamax-Algorithmus für Tic-Tac-Toe spielt manchmal falsch Java Basics - Anfänger-Themen 10
T PNG Datei wird nur manchmal geöffnet Java Basics - Anfänger-Themen 6
C JOptionPane tritt manchmal bei Plugin in den Hintergrund Java Basics - Anfänger-Themen 2
Z Lottoprogramm - Zeigt manchmal nur 5 Zahlen statt 6 an? Java Basics - Anfänger-Themen 4
O if and else geht nur manchmal Java Basics - Anfänger-Themen 17
S Werte aus SingeltonKlasse sind manchmal =0 &manchmal !=0 Java Basics - Anfänger-Themen 1
A Wieso erscheinen die Objekte manchmal und manchmal nicht Java Basics - Anfänger-Themen 2
Q Compiler-Fehler Javaprogramm wird manchmal nicht ausgeführt? Java Basics - Anfänger-Themen 4
T manchmal gehts, manchmal nicht???? Java Basics - Anfänger-Themen 25
Developer_X Componente werden manchmal nicht angezeigt. Java Basics - Anfänger-Themen 8
X Java Eclipse Version: 3.4.1 meldet manchmal keine Fehler Java Basics - Anfänger-Themen 17
K Verschiebeoperatoren - manchmal falsche Ergebnisse Java Basics - Anfänger-Themen 7
G manchmal Objekt machmal nicht Java Basics - Anfänger-Themen 2
B Warum manchmal public class und manchmal nur class Java Basics - Anfänger-Themen 3
S while schleife in der runmethode Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben