Threads Interrupt und start

Basti4231

Bekanntes Mitglied
Hey Leute,

Funktionsziel: Starten eines Prozesses auf bestimmte Wiederholdauer und jederzeitiges Stoppen.

Ich habe ein kleines UI, das einen Start- und Stop-Button besitzt. Es gibt noch eine JComboBox mit Sekunden zur Auswahl. Die werden dann als sleep-time hergenommen für den Thread.sleep, der sich in der run-methode meines Threads befindet.

Des Problem bei mir ist jetzt, wenn einma der Start-Button angeklickt wurde, kann ich nie mehr irgendeine Aktion auf meiner UI ausführen, die eine Wirkung hat. Der Stop-Button hätte eigentlich die Funktion den Thread zu interrupten, aber ich kann ihn ja leider nicht klicken...

Wie muss ich da vorgehen?


hier mein Thread:

Java:
public class KeyPressingRunner extends Thread {


	public void run(long msInterval) {

		while (!isInterrupted()) {
			System.out
					.println("I am running every " + msInterval/1000 + " seconds.");
			try {
				Thread.sleep(msInterval);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

lg Basti
 

xehpuk

Top Contributor
Hey,

du musst die Ausführung des Threads über dessen [c]start()[/c] einleiten. Dadurch wird dessen [c]run()[/c] im neuen Thread ausgeführt. Führst du sie hingegen direkt aus, bleibt der aktuelle Thread (in diesem Fall der Event Dispatch Thread) damit beschäftigt.

Wichtig ist auch, dass die [c]run()[/c] überschrieben (oder ein Runnable im Konstruktor übergeben) wird. In deinem Code ist das nicht der Fall.
Das Intervall könntest du dem Konstruktor übergeben. Deine Ausgabe ist wegen Ganzzahldivision nicht ganz korrekt, daher lieber durch [c]1000d[/c] teilen. Schließlich würde dein Thread womöglich bis zum Beenden der Anwendung laufen, denn (aus der Doku von [c]sleep(long)[/c]):
Throws:
InterruptedException - if any thread has interrupted the current thread. The interrupted status of the current thread is cleared when this exception is thrown.
Im catch-Block musst du also noch etwas unternehmen. Ein [c]interrupt()[/c] oder [c]break[/c] oder auch ein [c]return[/c] würden zum Beenden der Ausführung führen.

Letztendlich könnte deine Klasse also so aussehen:
Java:
public class KeyPressingRunner extends Thread {
	private final long msInterval;
	
	public KeyPressingRunner(long msInterval) {
		this.msInterval = msInterval;
	}
	
	@Override
	public void run() {
		while (!isInterrupted()) {
			System.out.println("I am running every " + msInterval / 1000d + " seconds.");
			try {
				Thread.sleep(msInterval);
			} catch (InterruptedException e) {
				e.printStackTrace();
				interrupt();
			}
		}
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Thread interrupt Java Basics - Anfänger-Themen 9
J Thread interrupt funktioniert nicht Java Basics - Anfänger-Themen 5
J Threads stoppen mit interrupt - Frage dazu Java Basics - Anfänger-Themen 7
B Threads Interrupt während Socket.read()? Java Basics - Anfänger-Themen 3
D Problem mit interrupt() thread Java Basics - Anfänger-Themen 4
P Threads beenden über interrupt Java Basics - Anfänger-Themen 6
R Thread - sleep - interrupt Java Basics - Anfänger-Themen 18
N interrupt Vater Thread = interrupt Sohn thread? Java Basics - Anfänger-Themen 2
S Thread.interrupt() schwer von begriff Java Basics - Anfänger-Themen 3
C Thread läuft und läuft, trotz interrupt() Java Basics - Anfänger-Themen 9
G Thread Interrupt Java Basics - Anfänger-Themen 2
U stop() vs. interrupt() Java Basics - Anfänger-Themen 17
Hilde22 Neu Start JButton einfügen Java Basics - Anfänger-Themen 2
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
richrich99 error: illegal start of expression Java Basics - Anfänger-Themen 10
B Quiz mit RMI Probleme mit RMI start Java Basics - Anfänger-Themen 4
Z Mehtode bei Start des Programms ausführen (Klassen übergreifend) Java Basics - Anfänger-Themen 12
T Start-Activity für Java Maven Web-Anwendung festlegen Java Basics - Anfänger-Themen 2
J Can't start eclipse Java Basics - Anfänger-Themen 5
D Neuer Start- und Endpunkt kann nur an bereits vorhandenen Start- oder Endpunkt anliegen Java Basics - Anfänger-Themen 2
J Compiler-Fehler Illegal Start of expression / '/'expected Java Basics - Anfänger-Themen 3
C NoClassDefFoundError mit externer Jar bei Start aus Eclipse Java Basics - Anfänger-Themen 3
B Schleife von anderer Methode stoppen? (Start continue) Java Basics - Anfänger-Themen 18
J Problem bei seriellem Start von Threads Java Basics - Anfänger-Themen 11
T Not a Statement/Illegal Start of expression bei for Anweisung Java Basics - Anfänger-Themen 6
N Passwort Anfrage vor Programm start Java Basics - Anfänger-Themen 1
S Fehler: Hauptklasse bin.demo.Start konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 2
S Methoden Beim Start meines Projektes eine Methode ausführen Java Basics - Anfänger-Themen 14
P ,,Illegal start of expression,, Java Basics - Anfänger-Themen 3
S Compiler-Fehler illegal start of expression Java Basics - Anfänger-Themen 4
S Dataflow von Start bis die SystemProperties class Java Basics - Anfänger-Themen 1
M Erste Schritte Start Methode - Exception Java Basics - Anfänger-Themen 1
M "illegal start of type" eindimensionales Schiffe versenken Java Basics - Anfänger-Themen 7
P illegal start of expression wie löse ich das? Java Basics - Anfänger-Themen 2
S Caesar Verschlüsselung Start Hilfe Java Basics - Anfänger-Themen 4
O Methoden Fehlermeldung(Illegal start of expression) bei 4-Gewinnt-Spiel Java Basics - Anfänger-Themen 5
thet1983 start & paint Methode? Java Basics - Anfänger-Themen 0
S Class File Editor gibt beim Start der Programms die Fehlermeldung Source not found aus Java Basics - Anfänger-Themen 1
S JProgressbar mit individuellem Start/Endpunkt Java Basics - Anfänger-Themen 11
R illegal start of expression - 3 Strings vergleichen mit .equals () Java Basics - Anfänger-Themen 5
OnDemand Berechnung in die start und paint Methode eines Applets Java Basics - Anfänger-Themen 28
X Compiler-Fehler illegal start of expression Java Basics - Anfänger-Themen 9
Dogge Start:Applet nicht Initialisiert Java Basics - Anfänger-Themen 11
P Illegal start of expression Java Basics - Anfänger-Themen 8
V Start ins Java Game Development Java Basics - Anfänger-Themen 22
M Erster JAR Start überprüfen Java Basics - Anfänger-Themen 6
O Illegal start of expression Java Basics - Anfänger-Themen 3
E Program Start Java Basics - Anfänger-Themen 2
E Program Start Java Basics - Anfänger-Themen 2
J JDK installieren JCreator erkennt JDK nicht. "Failed to start the following executable" Java Basics - Anfänger-Themen 3
L Illegal start of expression? Java Basics - Anfänger-Themen 4
T Java Applet braucht mehrere Minuten zu Start Java Basics - Anfänger-Themen 5
M Beim Start Methode laden die Textfelder füllt Java Basics - Anfänger-Themen 5
M Bei *.jar start kompletten String übergeben Java Basics - Anfänger-Themen 7
S Java Web Start lädt keine Bilder Java Basics - Anfänger-Themen 2
M Mehrere Threads nutzen --> run() schneller als start(), Warum? Java Basics - Anfänger-Themen 3
D Start- + Stopzeit Java Basics - Anfänger-Themen 7
J start(); bei bluej Java Basics - Anfänger-Themen 3
R GUI mit if-Verzweigung kombiniert - Illegal start of expression (Dringend) Java Basics - Anfänger-Themen 7
S Illegal Start? Java Basics - Anfänger-Themen 4
T Datenbank automatisch erzeugen beim ersten Start Java Basics - Anfänger-Themen 6
L Illegal Start of Type, wie finde ich den fehler Java Basics - Anfänger-Themen 4
P BlueJ Fehlermeldung - Illegal Start of Type Java Basics - Anfänger-Themen 8
M Java-web-start weg? Java Basics - Anfänger-Themen 2
S illegal start of expression Java Basics - Anfänger-Themen 2
D OOP Applet-Start Fehler Java Basics - Anfänger-Themen 2
Semox Fehler in Eclipse vor Start eines Applets anzeigen? Java Basics - Anfänger-Themen 2
F Richtiger Start in Java? Java Basics - Anfänger-Themen 2
S Start einer Applikation Java Basics - Anfänger-Themen 10
B Applet: Event-Handling-Methode in start- bzw. paint-Methode Java Basics - Anfänger-Themen 7
G Applet - Methode start() wird nicht aufgerufen Java Basics - Anfänger-Themen 2
M [Hibernate] "Illegal start of expression"-Fehler b Java Basics - Anfänger-Themen 2
G Java beim Start ausführen Java Basics - Anfänger-Themen 2
A Start über Konsole nicht möglich Java Basics - Anfänger-Themen 4
M Zeitdifferenz von Ende - sleep(x) - Start von x abhängig Java Basics - Anfänger-Themen 6
D "Illegal Start of Expression" und "; expected Java Basics - Anfänger-Themen 3
A Integer Value Error beim Start Java Basics - Anfänger-Themen 5
J Start mit .exe-Datei oder Desktop-Symbol möglich? Java Basics - Anfänger-Themen 12
A Methoden am start ausführen Java Basics - Anfänger-Themen 6
G Problem: Start: Applet nicht initialisiert Java Basics - Anfänger-Themen 4
G Start Java Basics - Anfänger-Themen 9
K JavaKara Programm - erfolgreich compiliert jedoch kein Start Java Basics - Anfänger-Themen 12
G Immer wieder illegal start of expression Java Basics - Anfänger-Themen 15
G nach Thread.start(); nochmal start(); aufrufen geht nicht Java Basics - Anfänger-Themen 4
F JFrame bei Start von Application öffnen Java Basics - Anfänger-Themen 15
L toggle button reagiert nicht mehr nach while-start Java Basics - Anfänger-Themen 8
B Dateien laden beim Start Java Basics - Anfänger-Themen 7
G Blue J - Fehlermeldung - identifier expected - illegal start Java Basics - Anfänger-Themen 6
E illegal start of expression Java Basics - Anfänger-Themen 4
G start-oder paint-Methode anstatt Event-Handling-Methode? Java Basics - Anfänger-Themen 3
N Problem beim Start von java-progs Java Basics - Anfänger-Themen 4
S private String text; -> "Illegal start of expression Java Basics - Anfänger-Themen 7
S Bilder gleich am Start zeichnen. Java Basics - Anfänger-Themen 15
B illegal start of expression Java Basics - Anfänger-Themen 6
S illegal start of expression Java Basics - Anfänger-Themen 2
C itemStateChanged beim Start aufrufen? Java Basics - Anfänger-Themen 9
W Start-Probleme mit externen Bibliotheken / JAR-Bildung Java Basics - Anfänger-Themen 2
W Java Web Start das richtige? Java Basics - Anfänger-Themen 11
Y Applet start probleme Java Basics - Anfänger-Themen 2
C String mit Start und Endposition durchsuchen? Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben