Simpler Thread lässt sich NIE über interrupt() unterbrechen

Status
Nicht offen für weitere Antworten.

jollyroger

Bekanntes Mitglied
Hallo zusammen,

ich komme gerade wirklich nicht weiter und hoffe, jemand hier kann mir helfen.....

Ich habe folgenden einfachen Thread als Singleton implementiert:

Code:
public class MonitorRunner extends Thread {

	private static Logger logger = Logger.getLogger(MonitorRunner.class);
	private static MonitorRunner monRunner = null;
	
	/**
	 * the "main"-method of the monitor, started by Thread.start()
	 */
	@Override
	public void run() {

		logger.info("starting monitoring....");
	
			while(! isInterrupted()) {
				
				/* 		1.) activity cycle		*/
				// for every directory
				for(Iterator i = ConfConstants.SRC_DIRS.iterator(); i.hasNext();) {
					// TODO: implement functionality
				}
				/* 		2.) quiet cycle			*/
				try {
					logger.debug("putting thread to sleep....");
					TimeUnit.SECONDS.sleep(ConfConstants.INT_CHECK_DIRS);
				} catch (InterruptedException e) {
					logger.debug("received interrupt signal while sleeping!");
					logger.debug(e.getMessage());
					logger.debug("stacktrace", e);
					// internal interrupt flag gets reseted by the InterruptedException
					// so we have to interrupt() again
					interrupt();
				}			
			}
	}
	
	public static MonitorRunner getMonRunner() {
		if(monRunner == null) 
			monRunner = new MonitorRunner();
		return monRunner;
	}
	
	private MonitorRunner () {}

}

Den versuche ich nun folgendermaßen zu stoppen:


Code:
	private String stopMonitoring() {

		String output = "";
		output += "Attempted to stop monitoring:
";
		logger.debug("Trying to stop monitoring thread....");
		//check if thread is already stopped, alternative to isAlive():Thread.State tState = fileMon.getState();
		if(!MonitorRunner.getMonRunner().isAlive()) {
			output += "Monitoring had already been stopped!
";
			logger.debug("Thread was already stopped");
			return output;
		} 
		// if it is alive, ask the thread to stop in a nice way...
		logger.debug("trying to stop thread via interrupt()");
		MonitorRunner.getMonRunner().interrupt(); 
		Thread.State state = MonitorRunner.getMonRunner().getState(); 
		logger.debug("Thread-state: " + state.toString());
		
		// check if thread is still alive	
		if(MonitorRunner.getMonRunner().isAlive()) {	
			logger.info("could not stop thread via interrupt()!");
			output += "could not stop thread via interrupt()!";
			return output;
		}	
		// if we came so far, thread was terminated normally
		output += "Monitoring is stopped!";
		logger.info("Monitoring thread was stopped!");
		
		return output;
	}

So nun ist die log-Ausgabe von stopMonitoring immer die folgende:


Code:
Trying to stop monitoring thread....
trying to stop thread via interrupt()
Thread-state: RUNNABLE
could not stop thread via interrupt()!

Kann mir bitte jemand verraten was da schiefläuft?

Danke für alle Tips!
 

Leroy42

Top Contributor
Du mußt dem Thread nach Aufruf von interrupt() auch die Zeit
geben, die Abfrage isInterrupted zu erreichen.

Unmittelbar nach Aufruf von interrupt() steckt er mit
ziemlicher Sicherheit noch in der sleep-Methode.
 

jollyroger

Bekanntes Mitglied
Hallo,

daran lag es nicht, ich Genie hatte in

Code:
while(! isInterrupted()) {
            
            /*       1.) activity cycle      */
            // for every directory
            for(Iterator i = ConfConstants.SRC_DIRS.iterator(); i.hasNext();) {
               // TODO: implement functionality
            }

ein

Code:
i.next();

vergessen und tatsächlich ein Endlosschleife produziert........*kopf gegen die wand hau*


Aber vielen Dank für den Tip von dir, der hat nämlich eine andere Frage geklärt....:)


Nun hätte ich aber noch eine 2 Fragen (sorry für soviel Nerverei...:) )

1.

Hab ich denn noch eine andere Möglichkeit, der Methode, die den Thread unterbrechen will zu sagen: "warte mit der weiteren Ausführung, bis der Thread wirklich fertig ist"

außer sowas zu machen wie:

Code:
myThread.interrupt();

while(! myThread.getState().toString().equals(Thread.State.TERMINATED)) {
// do nothing, just wait
}

oder halt sowas unschönes wie

Code:
Thread.sleep(1000)

zu machen und zu hoffen, das der Thread dann fertig ist?

Ich hab in der Thread-API-Doku nichts entsprechendes gefunden, also muss ich wohl die 1. Möglichkeit nehmen?

2.

Das folgende Problem hab ich gelöst, aber ich weiss nicht warum das so nicht geht:

Also, wenn ich denn Thread so wie stoppe (um den Tip erweitert, dh. Thread.sleep(1000) nach interrupt()):

Code:
	private String stopMonitoring() {

		String output = "";
		output += "Attempted to stop monitoring:
";
		logger.debug("Trying to stop monitoring thread....");
		//check if thread is already stopped, alternative to isAlive():Thread.State tState = fileMon.getState();
		if(!MonitorRunner.getMonRunner().isAlive()) {
			output += "Monitoring had already been stopped!
";
			logger.debug("Thread was already stopped");
			return output;
		} 
		// if it is alive, ask the thread to stop in a nice way...
		logger.debug("trying to stop thread via interrupt()");
		MonitorRunner.getMonRunner().interrupt(); 

		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		logger.debug("Thread-state: " + MonitorRunner.getMonRunner().getState().toString());
		// check if thread is still alive	
		if(MonitorRunner.getMonRunner().isAlive()) {	
			logger.info("could not stop thread via interrupt()!");
			output += "could not stop thread via interrupt()!";
			return output;
		}	
		// if we came so far, thread was terminated normally
		output += "Monitoring is stopped!";
		logger.info("Monitoring thread was stopped!");
		
		return output;
	}

wird der Thread gestoppt, soweit also ok....

Versuche ich ihn allerdings dann wieder über restartMonitoring bzw. startMonitoring() (restartMonitoring() ruft startMonitoring() auf) wieder anzuschmeissen:

Code:
	/**
	 * restartMonitoring() tries to restart the monitoring thread
	 * @return success or failure message
	 */
	
	private String restartMonitoring() {

		String output = "";
		output += "Attempted to restart monitoring:
";
		logger.info("Trying to restart monitoring thread....");
		//check if thread is already started, alternative to isAlive():Thread.State tState = fileMon.getState();
		if(MonitorRunner.getMonRunner().isAlive()) {
			output += "Monitoring is already up!
";
			logger.info("monitoring thread is already running!");
			return output;
		} 
		// if it is not alive, try to  start the thread
		startMonitoring();
		// check if it is alive
		if(!MonitorRunner.getMonRunner().isAlive()) {
			output += "Monitoring could not be restarted!
";
			logger.error("Monitoring could not be restarted!");
			return output;
		} 
		output += "Monitoring was restarted!
";
		logger.info("Monitoring was restarted!");
		return output;
	}

	/**
	 * startMonitoring() tries to start the monitoring thread
	 */

	private void startMonitoring() {

		// start monitoring thread
		logger.info("starting MonitorRunner...");
		logger.info("thread state: " + MonitorRunner.getMonRunner().getState().toString());
		MonitorRunner.getMonRunner().start();
		
	}

Erhalte ich folgende Ausgabe:

Code:
[http-8180-Processor25]  - thread state: TERMINATED
Feb 26, 2007 7:52:32 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet Sender threw exception
java.lang.IllegalThreadStateException
	at java.lang.Thread.start(Thread.java:571)
	at startMonitoring(Sender.java:220)
	at restartMonitoring(Sender.java:179)

Die Stelle an der er letztendlich abschmiert, ist die hier aus startMonitoring():


Code:
		MonitorRunner.getMonRunner().start();

Bau ich aber nun in meine stopMonitoring()-Methode noch diesen Aufruf mit ein (Rot-Markierung in Code-Tags scheint nicht zu gehen, deshalb mit /********/ markiert) :

Code:
private String stopMonitoring() {

		String output = "";
		output += "Attempted to stop monitoring:
";
		logger.debug("Trying to stop monitoring thread....");
		//check if thread is already stopped, alternative to isAlive():Thread.State tState = fileMon.getState();
		if(!MonitorRunner.getMonRunner().isAlive()) {
			output += "Monitoring had already been stopped!
";
			logger.debug("Thread was already stopped");
			return output;
		} 
		// if it is alive, ask the thread to stop in a nice way...
		logger.debug("trying to stop thread via interrupt()");
		MonitorRunner.getMonRunner().interrupt(); 

		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		logger.debug("Thread-state: " + MonitorRunner.getMonRunner().getState().toString());
               [/********/
                MonitorRunner.getMonRunner().stopThread();
               /********/
		// check if thread is still alive	
		if(MonitorRunner.getMonRunner().isAlive()) {	
			logger.info("could not stop thread via interrupt()!");
			output += "could not stop thread via interrupt()!";
			//MonitorRunner.getMonRunner().stopThread();
			return output;
		}	
		// if we came so far, thread was terminated normally
		output += "Monitoring is stopped!";
		logger.info("Monitoring thread was stopped!");
		
		return output;
	}

stopThread() ist in meiner Thread-Klasse folgendermaßen implementiert:

Code:
public class MonitorRunner extends Thread {

	private static Logger logger = Logger.getLogger(MonitorRunner.class);
	private static MonitorRunner monRunner = null;
	
	/**
	 * the "main"-method of the monitor, started by Thread.start()
	 */
	@Override
	public void run() {

		logger.info("starting monitoring....");
		checkConfiguration();
		logger.info("starting monitoring....");
		
			while(! isInterrupted()) {
				
				/* 		1.) activity cycle		*/
				// for every directory
				for(Iterator i = ConfConstants.SRC_DIRS.iterator(); i.hasNext();) {
					// TODO: implement functionality
					i.next();
				}
				/* 		2.) quiet cycle			*/
				try {
					logger.debug("putting thread to sleep....");
					TimeUnit.SECONDS.sleep(ConfConstants.INT_CHECK_DIRS);
				} catch (InterruptedException e) {
					logger.debug("received interrupt signal while sleeping!");
					logger.debug(e.getMessage());
					logger.debug("stacktrace", e);
					// internal interrupt flag gets reseted by the InterruptedException
					// so we have to interrupt() again
					interrupt();
				}			
			}

	}
	
	private void checkConfiguration() {
		// check if only directories were given
		
	}

	public static MonitorRunner getMonRunner() {
		if(monRunner == null) 
			monRunner = new MonitorRunner();
		return monRunner;
	}
	
	private MonitorRunner (){	}

        /********/
        public void stopThread() {
		monRunner = null;
	}
}

Dann klappt das Ganze, sprich ich kann den Thread restarten???

Also lange Rede kurzer Sinn:

Ich kann auf einem Thread des state == TERMINATED ist, kein start() mehr aufrufen?

Bin ich jetzt blind, oder warum sehe ich in der API-Doku nichts dazu?
 

jollyroger

Bekanntes Mitglied
jollyroger hat gesagt.:
Hallo,

daran lag es nicht, ich Genie hatte in

Code:
while(! isInterrupted()) {
            
            /*       1.) activity cycle      */
            // for every directory
            for(Iterator i = ConfConstants.SRC_DIRS.iterator(); i.hasNext();) {
               // TODO: implement functionality
            }

ein

Code:
i.next();

vergessen und tatsächlich ein Endlosschleife produziert........*kopf gegen die wand hau*


Aber vielen Dank für den Tip von dir, der hat nämlich eine andere Frage geklärt....:)


Nun hätte ich aber noch eine 2 Fragen (sorry für soviel Nerverei...:) )

1.

Hab ich denn noch eine andere Möglichkeit, der Methode, die den Thread unterbrechen will zu sagen: "warte mit der weiteren Ausführung, bis der Thread wirklich fertig ist"

außer sowas zu machen wie:

Code:
myThread.interrupt();

while(! myThread.getState().toString().equals(Thread.State.TERMINATED)) {
// do nothing, just wait
}

oder halt sowas unschönes wie

Code:
Thread.sleep(1000)

zu machen und zu hoffen, das der Thread dann fertig ist?

Ich hab in der Thread-API-Doku nichts entsprechendes gefunden, also muss ich wohl die 1. Möglichkeit nehmen?

2.

Das folgende Problem hab ich gelöst, aber ich weiss nicht warum das so nicht geht:

Also, wenn ich denn Thread so wie stoppe (um den Tip erweitert, dh. Thread.sleep(1000) nach interrupt()):

Code:
	private String stopMonitoring() {

		String output = "";
		output += "Attempted to stop monitoring:
";
		logger.debug("Trying to stop monitoring thread....");
		//check if thread is already stopped, alternative to isAlive():Thread.State tState = fileMon.getState();
		if(!MonitorRunner.getMonRunner().isAlive()) {
			output += "Monitoring had already been stopped!
";
			logger.debug("Thread was already stopped");
			return output;
		} 
		// if it is alive, ask the thread to stop in a nice way...
		logger.debug("trying to stop thread via interrupt()");
		MonitorRunner.getMonRunner().interrupt(); 

		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		logger.debug("Thread-state: " + MonitorRunner.getMonRunner().getState().toString());
		// check if thread is still alive	
		if(MonitorRunner.getMonRunner().isAlive()) {	
			logger.info("could not stop thread via interrupt()!");
			output += "could not stop thread via interrupt()!";
			return output;
		}	
		// if we came so far, thread was terminated normally
		output += "Monitoring is stopped!";
		logger.info("Monitoring thread was stopped!");
		
		return output;
	}

wird der Thread gestoppt, soweit also ok....

Versuche ich ihn allerdings dann wieder über restartMonitoring bzw. startMonitoring() (restartMonitoring() ruft startMonitoring() auf) wieder anzuschmeissen:

Code:
	/**
	 * restartMonitoring() tries to restart the monitoring thread
	 * @return success or failure message
	 */
	
	private String restartMonitoring() {

		String output = "";
		output += "Attempted to restart monitoring:
";
		logger.info("Trying to restart monitoring thread....");
		//check if thread is already started, alternative to isAlive():Thread.State tState = fileMon.getState();
		if(MonitorRunner.getMonRunner().isAlive()) {
			output += "Monitoring is already up!
";
			logger.info("monitoring thread is already running!");
			return output;
		} 
		// if it is not alive, try to  start the thread
		startMonitoring();
		// check if it is alive
		if(!MonitorRunner.getMonRunner().isAlive()) {
			output += "Monitoring could not be restarted!
";
			logger.error("Monitoring could not be restarted!");
			return output;
		} 
		output += "Monitoring was restarted!
";
		logger.info("Monitoring was restarted!");
		return output;
	}

	/**
	 * startMonitoring() tries to start the monitoring thread
	 */

	private void startMonitoring() {

		// start monitoring thread
		logger.info("starting MonitorRunner...");
		logger.info("thread state: " + MonitorRunner.getMonRunner().getState().toString());
		MonitorRunner.getMonRunner().start();
		
	}

Erhalte ich folgende Ausgabe:

Code:
[http-8180-Processor25]  - thread state: TERMINATED
Feb 26, 2007 7:52:32 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet Sender threw exception
java.lang.IllegalThreadStateException
	at java.lang.Thread.start(Thread.java:571)
	at startMonitoring(Sender.java:220)
	at restartMonitoring(Sender.java:179)

Die Stelle an der er letztendlich abschmiert, ist die hier aus startMonitoring():


Code:
		MonitorRunner.getMonRunner().start();

Bau ich aber nun in meine stopMonitoring()-Methode noch diesen Aufruf mit ein (Rot-Markierung in Code-Tags scheint nicht zu gehen, deshalb mit /********/ markiert) :

Code:
private String stopMonitoring() {

		String output = "";
		output += "Attempted to stop monitoring:
";
		logger.debug("Trying to stop monitoring thread....");
		//check if thread is already stopped, alternative to isAlive():Thread.State tState = fileMon.getState();
		if(!MonitorRunner.getMonRunner().isAlive()) {
			output += "Monitoring had already been stopped!
";
			logger.debug("Thread was already stopped");
			return output;
		} 
		// if it is alive, ask the thread to stop in a nice way...
		logger.debug("trying to stop thread via interrupt()");
		MonitorRunner.getMonRunner().interrupt(); 

		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		logger.debug("Thread-state: " + MonitorRunner.getMonRunner().getState().toString());
               [/********/
                MonitorRunner.getMonRunner().stopThread();
               /********/
		// check if thread is still alive	
		if(MonitorRunner.getMonRunner().isAlive()) {	
			logger.info("could not stop thread via interrupt()!");
			output += "could not stop thread via interrupt()!";
			//MonitorRunner.getMonRunner().stopThread();
			return output;
		}	
		// if we came so far, thread was terminated normally
		output += "Monitoring is stopped!";
		logger.info("Monitoring thread was stopped!");
		
		return output;
	}

stopThread() ist in meiner Thread-Klasse folgendermaßen implementiert:

Code:
public class MonitorRunner extends Thread {

	private static Logger logger = Logger.getLogger(MonitorRunner.class);
	private static MonitorRunner monRunner = null;
	
	/**
	 * the "main"-method of the monitor, started by Thread.start()
	 */
	@Override
	public void run() {

		logger.info("starting monitoring....");
		checkConfiguration();
		logger.info("starting monitoring....");
		
			while(! isInterrupted()) {
				
				/* 		1.) activity cycle		*/
				// for every directory
				for(Iterator i = ConfConstants.SRC_DIRS.iterator(); i.hasNext();) {
					// TODO: implement functionality
					i.next();
				}
				/* 		2.) quiet cycle			*/
				try {
					logger.debug("putting thread to sleep....");
					TimeUnit.SECONDS.sleep(ConfConstants.INT_CHECK_DIRS);
				} catch (InterruptedException e) {
					logger.debug("received interrupt signal while sleeping!");
					logger.debug(e.getMessage());
					logger.debug("stacktrace", e);
					// internal interrupt flag gets reseted by the InterruptedException
					// so we have to interrupt() again
					interrupt();
				}			
			}

	}
	
	private void checkConfiguration() {
		// check if only directories were given
		
	}

	public static MonitorRunner getMonRunner() {
		if(monRunner == null) 
			monRunner = new MonitorRunner();
		return monRunner;
	}
	
	private MonitorRunner (){	}

        /********/
        public void stopThread() {
		monRunner = null;
	}
}

Dann klappt das Ganze, sprich ich kann den Thread restarten???

Also lange Rede kurzer Sinn:

Ich kann auf einem Thread des state == TERMINATED ist, kein start() mehr aufrufen?

Bin ich jetzt blind, oder warum sehe ich in der API-Doku nichts dazu?

P.S. Das Forum zerhaut mir immer einen Teil meiner Formatierung.......
 

Marco13

Top Contributor
Ohne jetzt den ganzen Code gelesen (oder sogar nachvollzogen) zu haben:
jollyroger hat gesagt.:
Ich kann auf einem Thread des state == TERMINATED ist, kein start() mehr aufrufen?
Ja.
jollyroger hat gesagt.:
Bin ich jetzt blind, oder warum sehe ich in der API-Doku nichts dazu?
Vielleicht weil du nicht bei "Thread.start()" gelesen hast :wink:
It is never legal to start a thread more than once.
 

jollyroger

Bekanntes Mitglied
Hallo und vielen Dank für die Klarstellung..... :wink:

Eine Verständnisfrage noch:

Code:
myThread.interrupt();
myThread.join();

ist doch eigentlich genau das Gleiche wie

Code:
myThread.interrupt();

while(! myThread.getState().toString().equals(Thread.State.TERMINATED)) {
// do nothing, just wait
}

?
 

Leroy42

Top Contributor
An sich schon, aber du würdest deine Prozessorlast unnötig
auf 100 % hochschnallen lassen, wenn du in deine while-Schleife
kein sleep einbaust.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Simpler Eventlistener für Tastaturtaste bauen? Allgemeine Java-Themen 13
D Simpler Timer zum warten Allgemeine Java-Themen 19
Horst79 Ein ganz simpler filebrowser als applet Allgemeine Java-Themen 2
J YAML + Java: Simpler Code funktioniert nur unter Windows Allgemeine Java-Themen 2
H ganz simpler chat Allgemeine Java-Themen 8
thE_29 Simpler FTP Client Allgemeine Java-Themen 3
T Simpler Webserver Allgemeine Java-Themen 11
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
M Exception in thread "AWT-EventQueue-0" Allgemeine Java-Themen 6
Q Thread wacht nicht auf Allgemeine Java-Themen 7
T Fragen zum Thread-Thema Allgemeine Java-Themen 4
T Threads Input/Output im Thread - Datei ohne Inhalt Allgemeine Java-Themen 1
T Fragen zum Thread-Thema Allgemeine Java-Themen 9
C Threads Variablen in einem Thread Aktualisieren Allgemeine Java-Themen 17
U Thread beenden Allgemeine Java-Themen 3
W Threads Mit Thread und Runtime externe Programme öffnen Allgemeine Java-Themen 0
N Thread interrupt Status debuggen Allgemeine Java-Themen 6
A Thread: Code paralell ausführen in mehreren Instanzen Allgemeine Java-Themen 1
E Threads linkedlist/multi-thread problem Allgemeine Java-Themen 3
B Erkennen, wann Prozess beendet ist, dann Thread beenden. Allgemeine Java-Themen 6
A Thread Fehler absichtlich provozieren Allgemeine Java-Themen 3
B Threads Java Thread kommunizieren Allgemeine Java-Themen 12
N Thread Sicherheit im komplexen Datenmodell Allgemeine Java-Themen 7
K Thread richtig benutzen Allgemeine Java-Themen 3
K Exception in thread "AWT-EventQueue-1" Allgemeine Java-Themen 2
vandread Problem bei kleiner Thread-Übung Allgemeine Java-Themen 2
G Thread erzeugt nicht plausible NullPointerException Allgemeine Java-Themen 7
H Netbeans Warning bei Thread.sleep in Schleife Allgemeine Java-Themen 4
P [Thread] Scheint nicht Sequenziell zu Arbeiten Allgemeine Java-Themen 9
A eine test thread.join() frage Allgemeine Java-Themen 2
tuttle64 Verständnisprobleme mit Thread Locks Allgemeine Java-Themen 4
G Threads Thread bei Datenabfrage Allgemeine Java-Themen 3
S Thread anhalten per Button ? Allgemeine Java-Themen 3
E Thread Programmierung Allgemeine Java-Themen 2
S Threads ServerSocket-Thread soll schlafen, bis er gebraucht wird Allgemeine Java-Themen 2
V Thread schneller stoppen Allgemeine Java-Themen 2
V anstatt thread.join() einfach while schleife? Allgemeine Java-Themen 8
B Mausbewegung im Thread erkennen (hoch/runter) Allgemeine Java-Themen 6
G Linux/C++/Pthreads auf JVM zugreifen, thread safe? Allgemeine Java-Themen 10
K Threads Probleme mit Thread Allgemeine Java-Themen 13
K Threads Thread überprüfen Allgemeine Java-Themen 3
Z Threads Thread für einen Client Allgemeine Java-Themen 9
M Thread JavaFish Allgemeine Java-Themen 10
G Thread.sleep Allgemeine Java-Themen 12
M Threads Viele Aufrufe aus Thread, komisches Verhalten Allgemeine Java-Themen 8
B Threads Main Thread warten auf abgebrochen Task warten lassen Allgemeine Java-Themen 25
K Timer Thread Allgemeine Java-Themen 8
M Methoden Static Methoden und Thread??? Allgemeine Java-Themen 4
N java.lang.IllegalMonitorStateException: object not locked by thread before notify() Allgemeine Java-Themen 2
C Mehothode in anderenm Thread aufrufen Allgemeine Java-Themen 10
R Thread läuft nicht?! Allgemeine Java-Themen 7
R ThreadPool - vorhandene thread liste überprüfen bzw. aufräumen Allgemeine Java-Themen 3
J Anderem Thread Variable mitgeben Allgemeine Java-Themen 2
C Argument an einen Thread übergeben Allgemeine Java-Themen 4
S java.util.ConcurrentModificationException - aber nur ein Thread Allgemeine Java-Themen 3
G JUnit Test Methoden in anderen Thread verlagern Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben