Netbeans Warning bei Thread.sleep in Schleife

H

hüteüberhüte

Gast
Hallo, habe folgendes Programm:

Java:
import java.util.GregorianCalendar;

public class Main {

    public static void main(String[] args) throws InterruptedException {
        GregorianCalendar gc_to = new GregorianCalendar(
                Integer.parseInt(args[0]),
                Integer.parseInt(args[1]),
                Integer.parseInt(args[2]),
                Integer.parseInt(args[3]),
                Integer.parseInt(args[4]));
        int index = 0;
        while (System.currentTimeMillis() <= gc_to.getTimeInMillis()) {
            // do something with index...
            Thread.sleep(60L * 1000L);
        }
    }
}

Es soll also jede Minute eine Aktion ausführen. Jetzt sagt mir Netbeans aber:

Warnung: Aufruf von Thread.sleep in Schleife

Was hat es damit auf sich? Wie sollte man es evtl. anders machen?

Grüße!
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
erster + zweiter Link zur Suche 'Warnung: Aufruf von Thread.sleep in Schleife'
java - Thread.sleep() in a while loop - Stack Overflow
multithreading - NetBeans / Java / New hint: Thread.sleep called in loop - Stack Overflow

viel mehr kann hier glaube ich kaum neues rauskommen, bei allem Vertrauen in dieses Forum ;)

wenn Schleifenabbruch von anderen Threads abhängt, dann lieber mit anderen Konstrukten dynamischer warten um sofort weiterzumachen,
wenn sleep() aber wirklich feste Pausen bedeuten soll, dann soweit ich denke keine Alternative
 

xehpuk

Top Contributor
An deinem Konstrukt ist zumindest der letzte
Code:
sleep()
-Aufruf unschön.

Beispiel:
  • Noch 170 Sekunden. Mach etwas und schlaf 60 Sekunden.
  • Noch 110 Sekunden. Mach etwas und schlaf 60 Sekunden.
  • Noch 50 Sekunden. Mach etwas und schlaf unnötigerweise 60 Sekunden.
  • Fertig.
 
H

hüteüberhüte

Gast
Danke, dass ganze Programm sieht so aus (vielleicht fällt euch ja noch etwas auf, was einfacher ginge):

Java:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.GregorianCalendar;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {

    private static final Pattern[] pat = {
        Pattern.compile("<img src=\"(...)\""),
        Pattern.compile("<img src=\"(....)\""),
        Pattern.compile("<img src=\"(.....)\"")};
    private static final int[] indexes = new int[pat.length];

    public static void main(String[] args) throws InterruptedException, IOException {
        GregorianCalendar gc_to = new GregorianCalendar(
                Integer.parseInt(args[0]),
                Integer.parseInt(args[1] + 1),
                Integer.parseInt(args[2]),
                Integer.parseInt(args[3]),
                Integer.parseInt(args[4]));
        while (System.currentTimeMillis() <= gc_to.getTimeInMillis()) {
            BufferedReader br = new BufferedReader(new InputStreamReader(new URL("http://www.example.com/").openStream()));
            String s;
            while ((s = br.readLine()) != null) {
                for (int i = 0; i < pat.length; i++) {
                    Matcher m = pat[i].matcher(s);
                    if (m.find()) {
                        System.out.println("Speichere " + m.group(1) + " ...");
                        BufferedInputStream bis = new BufferedInputStream(new URL(m.group(1)).openStream());
                        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(String.format("%d_%04d.jpg", i + 1, indexes[i]++)));
                        int b;
                        while ((b = bis.read()) != -1) {
                            bos.write(b);
                        }
                        // Muss ich hier bos.flush() aufrufen?
                        bis.close();
                        bos.close();
                        break;
                    }
                }
            }
            br.close();
            Thread.sleep(60L * 1000L);
        }
    }
}

Im Prinzip soll eine Website aufgerufen werden. Sie beinhaltet Bilder, die dann geladen+gespeichert werden sollen. Das soll jede Minute geschehen, bis ein bestimmter Zeitpunkt erreicht ist. Die Anwendung soll sofort beendet werden, wenn ein Fehler (z.B. beim Lesen/Schreiben) auftritt.

Muss ich in Zeile 41 flush() aufrufen?

Dass das Programm nach dem letzten Lesen/Schreiben noch 60 Sekunden wartet, ist nicht schlimm. Wichtig ist nur, dass mindestens 60 Sekunden zwischen dem erneutem Lesen/Schreiben gewartet wird.
 
S

SlaterB

Gast
ein close() sollte auch immer flush()en, also an sich nicht nötig,

mit der Netbeans-Warning kann dein Programminhalt praktisch nichts zu tun haben
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
volcanos JavaFX-Programme nur in NetBeans selber ausführbar ! command_line: NoClassDefFoundError Allgemeine Java-Themen 39
T PIM basierend auf netbeans via AnyDesk Problem Allgemeine Java-Themen 3
O Java-Applikation tut in Netbeans, als JAR nicht, wegen Pfadangaben einer benötigten Datei Allgemeine Java-Themen 8
A Garbage Collector in NetBeans vs. exe Anwendung Allgemeine Java-Themen 33
L DefaultTableModel ("Netbeans IDE 8.1") Allgemeine Java-Themen 6
F Netbeans Version Allgemeine Java-Themen 2
F Linux & NetBeans: Datei in Systemverzeichnis schreiben? Allgemeine Java-Themen 1
Uzi21 Frage zu NetBeans ( Console) Allgemeine Java-Themen 11
F Swing NetBeans nimmt ActionListener nicht an. Allgemeine Java-Themen 2
x22 Hintergrund in Netbeans ändern Allgemeine Java-Themen 3
G Merkwürdiger Fehler NetBeans Allgemeine Java-Themen 2
P Eclipse Gemeinsam mit NetBeans an einem Projekt arbeiten? Allgemeine Java-Themen 3
D NetBeans Programm in NetBeans deutlich schneller als als Jar Allgemeine Java-Themen 33
E Wie Timer anbringen mit Designer in Netbeans Allgemeine Java-Themen 5
S "Code too large" bei Netbeans Allgemeine Java-Themen 16
T Einbinden einer Library in NetBeans Allgemeine Java-Themen 3
S Applet in Java NetBeans Allgemeine Java-Themen 3
C Netbeans - Aufruf-Reihenfolge Allgemeine Java-Themen 5
T Netbeans Allgemeine Java-Themen 6
E Problem mit JCurses und NetBeans Allgemeine Java-Themen 13
K Erhöhung Java Heap Space in Netbeans 6.5 - funktioniert nicht oder bringt nichts? Allgemeine Java-Themen 1
A Netbeans Bug? Allgemeine Java-Themen 2
T NetBeans: Ist meine Konfiguration falsch? Allgemeine Java-Themen 7
G NetBeans und Jar Datei Allgemeine Java-Themen 2
zilti NetBeans 6.0: neuen File Type definieren Allgemeine Java-Themen 2
zilti NetBeans-Frage zum GUI-Builder Allgemeine Java-Themen 10
P NetBeans Project kompilieren Allgemeine Java-Themen 10
M Netbeans IDE und javax.comm 2.0 Allgemeine Java-Themen 4
M Netbeans mit JDK 7 starten Allgemeine Java-Themen 4
M Update auf netbeans 6Beta 1 Allgemeine Java-Themen 2
G netbeans rpc Allgemeine Java-Themen 2
MQue NetBeans problem Allgemeine Java-Themen 4
G Java-Problem mit Netbeans Allgemeine Java-Themen 2
E *.gif mit NetBeans Allgemeine Java-Themen 4
J Hängende JVM z. B. bei NetBeans Allgemeine Java-Themen 26
E NetBeans Code Editieren Allgemeine Java-Themen 5
E JTree in NetBeans Allgemeine Java-Themen 2
B java eclipse /Netbeans lasten pc aus ? Allgemeine Java-Themen 6
J Netbeans: wie auf grafische elemente zugreifen, andere Datei Allgemeine Java-Themen 2
G HTTConnection NetBeans Allgemeine Java-Themen 7
C Netbeans und MVC Allgemeine Java-Themen 18
G Lizenzgeführen bei kommerzieller Nutzung der NetBeans IDE? Allgemeine Java-Themen 2
K Netbeans Platform Allgemeine Java-Themen 2
H Warning bei Build jar Allgemeine Java-Themen 9
J WARNING: An illegal reflective access operation has occurred, beim Compilieren von JasperReports, was bedeutet das ? Allgemeine Java-Themen 23
G Warnung in der Konsole von Eclipse "WARNING: ..." Allgemeine Java-Themen 2
E NetBeans warning: [options] bootstrap class path not set in conjunction with -source 1.6 Allgemeine Java-Themen 4
C Klassen Warning "synthetic access" bei innerer Klasse Allgemeine Java-Themen 15
S Keine Exception-Warning in Eclipse Allgemeine Java-Themen 3
E Heap und Comparable (warning: [unchecked] unchecked cast) Allgemeine Java-Themen 2
G GC Warning: Repeated allocation of very large block Allgemeine Java-Themen 35
N Warning "The Cast from Object to" Allgemeine Java-Themen 9
T JNI: jcharArray: warning: cast to pointer from integer of. Allgemeine Java-Themen 5
N warning bei Vectoren Allgemeine Java-Themen 15
N warning beim compilieren des eigenen TableRenderers Allgemeine Java-Themen 5
R 11 GB File lesen ohne zu extrahieren Filedaten Bereich für Bereich adressieren dann mit Multi-Thread id die DB importieren Allgemeine Java-Themen 3
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
smarterToby Wie stoppe ich diesen Thread Allgemeine Java-Themen 4
A Thread.sleep Problem Allgemeine Java-Themen 2
J Thread started nur einmal Allgemeine Java-Themen 19
W Server-Thread schreibt nicht alle Dateien Allgemeine Java-Themen 6
OnDemand Logfile pro User / Thread Allgemeine Java-Themen 7
OnDemand Thread / Service abbrechen Allgemeine Java-Themen 3
Thallius Ist meine static Helper Class Thread save? Allgemeine Java-Themen 9
P Swing Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: npoints > xpoints.length || npoints > ypoints.length Allgemeine Java-Themen 5
B Thread.sleep() in EJB Container wie lösen? Allgemeine Java-Themen 11
S Ist das Neuzuweisen von Feldern atomic und damit Thread-Safe? Allgemeine Java-Themen 2
S Exception in thread "main" java.lang.NullPointerException at FamilienApp.main(FamilienApp.java:15) Allgemeine Java-Themen 1
J Einen Thread in einer Schleife Allgemeine Java-Themen 2
E HILFE !! Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils Allgemeine Java-Themen 4
Flynn Thread-Problem... Allgemeine Java-Themen 2
G Thread-Programmierung Allgemeine Java-Themen 5
S Datei wird nicht gefunden Thread.currentThread().getContextClassLoader().getResourceAsStream() Allgemeine Java-Themen 1
G Beendet sich der Thread selbst?! Allgemeine Java-Themen 3
mrbig2017 Sleep wird ignoriert und der Thread wartet nicht Allgemeine Java-Themen 1
S Thread beenden Allgemeine Java-Themen 9
M Array aus Thread Objekten erstellen Allgemeine Java-Themen 2
Aruetiise Swing JOptionPane ohne denn Thread zu pausieren Allgemeine Java-Themen 1
M Nanosekunden-Pause innerhalb einen Thread-Loops Allgemeine Java-Themen 3
E Thread Exception Allgemeine Java-Themen 6
javaerd Binomialkoeffizient ausrechnen, Exception in thread "main" java.lang.StackOverflowError Allgemeine Java-Themen 6
T Merkwürdiges Thread-Verhalten Allgemeine Java-Themen 6
K Thread Problem Allgemeine Java-Themen 6
W Thread sleep 30 sekunden - wenn keine Antwort bis dahin neu senden Allgemeine Java-Themen 2
H Thread bleibt stehen bei jar in jar Allgemeine Java-Themen 1
J Threads HTTP Request (Thread) dauert lange - in Android Allgemeine Java-Themen 3
F CPU Last eines Thread ausfindig machen Allgemeine Java-Themen 0
V Compiler-Fehler Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 125, Size: 125 Allgemeine Java-Themen 11
Tausendsassa Threads Einen Thread sich selbst schließen lassen Allgemeine Java-Themen 17
P Threads BufferedImage, Thread Concurrency Allgemeine Java-Themen 1
M Klasse in separaten Thread ausführen.Wie genau? Allgemeine Java-Themen 2
llabusch Thread blockiert Dialog Allgemeine Java-Themen 1
J Thread wait() Allgemeine Java-Themen 2
V Thread.sleep und InterruptedException? Allgemeine Java-Themen 1
G Thread nicht von GC zerstört Allgemeine Java-Themen 6
J Wie erschaffe ich einen sicheren Datenaustausch zwischen Thread und Nicht-Threads Allgemeine Java-Themen 8
Sogomn Thread blocken bis Taste gedrückt Allgemeine Java-Themen 5
T Starten vom Thread Allgemeine Java-Themen 3
T Wait/Notify() bei Thread Allgemeine Java-Themen 6
J Exception in thread "main" java.lang.NoClassDefFoundError Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben