Thread Frage

Status
Nicht offen für weitere Antworten.

p-flash

Aktives Mitglied
Hi,

wie genau läuft es bei Threads? Wenn ich zB Thread.sleep(100); da stehen habe, kann dann nur in dieser Zeit ein anderer Thread was machen? Also wenn ich eine Schaltfläche drücke, klappt es nur in diesen 100 MS? Wie lange läuft ein Thread bis es in sleep geht?

Danke.

p-flash
 

Bleiglanz

Gesperrter Benutzer
der Thread geht schlafen, wenn er beim ablauf auf die sleep Methode trifft

dann können andere threads was machen

was soll das mit einer Schaltfläche zu tun haben?
 

p-flash

Aktives Mitglied
Während der eine Thread läuft, kann man doch nichts anderes machen, oder? Auch keine Schaltfläche aktivieren die zB alles anhält. Durch Multithreading wird das ja irgendwie parallelisiert. Aber was passiert wenn ich die Schaltfläche drücke, während der andere Thread noch läuft, als nicht bei sleep angekommen ist? Oder habe ich das falsch verstanden?

Danke.

p-flash
 

Bleiglanz

Gesperrter Benutzer
wenn du AWT oder Swing machst, dann gibt es GENAU EINEN Thread, der für alle Ergeignisse zuständig ist

wenn du den schlafen legst, dann schläft dein ganzes Programm, das ist also schon mal keine gute Idee

die Frage ist: Was ist bei dir "der andere Thread"??
 

p-flash

Aktives Mitglied
Irgendwie wechselt er bei mir die Threads nicht richtig ab, glaube ich:

Code:
import java.awt.*;

public class Nursery extends Thread
{
	private TextArea display;
	
	public Nursery(TextArea display)
	{
		this.display = display;
	}
	
	public void run()
	{
		while(true)
		{
			display.append("Maria hatte ein kleines Schaf\n");
			display.append("Sein Fell war weiß wie Schnee\n");
			try
			{
				Thread.sleep(5000);
			}
			catch(InterruptedException e)
			{
				display.append("Ausnahme bei sleep");
			}
		}
	}
}


Code:
import java.awt.*;

public class Revolutionary extends Thread
{
	private TextArea display;
	
	public Revolutionary(TextArea display)
	{
		this.display = display;
	}
	
	public void run()
	{
		while(true)
		{
			display.append("Lobet Marx\n");
			display.append("und riecht die Munition weiter\n");
			try
			{
				Thread.sleep(5000);
			}
			catch(InterruptedException e)
			{
				display.append("Ausnahme bei sleep");
			}
		}
	}
}


Code:
import java.applet.*;
import java.awt.*;

public class Poeten extends Applet
{
	public void init()
	{
		TextArea display = new TextArea("", 10, 30, TextArea.SCROLLBARS_VERTICAL_ONLY);
		add(display);
		Nursery kindlich = new Nursery(display);
		Revolutionary revolutionaer = new Revolutionary(display);
		kindlich.start();
		revolutionaer.start();
	}
}


Die Ausgabe ist:
Maria hatte ein kleines Schaf
Sein Fell war weiß wie Schnee
Lobet Marx
und riecht die Munition weiter

In meinem Buch steht aber:

Maria hatte ein kleines Schaf
Lobet Marx
Sein Fell war weiß wie Schnee
und riecht die Munition weiter

Die Sätze sind gemischt. Warum klappt es bei mir nicht?

p-flash
 

lin

Top Contributor
Hm, also ich denke der Output
Maria hatte ein kleines Schaf
Sein Fell war weiß wie Schnee
Lobet Marx
und riecht die Munition weiter
ist nur logisch... Der erste Thread wird gestartet, läuft: In diesem Thread wird
Code:
display.append("Maria hatte ein kleines Schaf\n"); 
display.append("Sein Fell war weiß wie Schnee\n");
ausgeführt, sprich in der TextArea steht dann:
Maria hatte ein kleines Schaf
Sein Fell war weiß wie Schnee
Und dann wird der Schlafen gelegt und der andere Thread wird ausgeführt, der hängt dann noch
Lobet Marx
und riecht die Munition weiter
dran..
 

Solour

Aktives Mitglied
das buch ist schon nicht inkorrekt,

das ergebnis deines programms ist halt einfach nicht determiniert

soll heißen es könnte auch

Lobet Marx
und riecht die Munition weiter
Lobet Marx
und riecht die Munition weiter
Lobet Marx
und riecht die Munition weiter
Lobet Marx
und riecht die Munition weiter
Lobet Marx
und riecht die Munition weiter

rauskommen, du hast nichtmal eine garantie dafür das der andere thread zum laufen kommt und etwas "ausgibt" während der andere schläft. (idR ist das zwar so, aber wenns um mein leben ginge würde ich nicht darauf vertrauen wollen ;o)

wenn du sowas tatsächlich synchronisieren willst such mal nach synchronized/semaphoren suchen
oder poste nochmal was

bye

ps: allerdings hätten die das im buch auch schreiben sollen...

pps: warum riechen die revolutionäre an der munition... ???:L
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Threads Thread sleep() Method einfache Frage Java Basics - Anfänger-Themen 8
ralfb1105 Frage zu Thread Synchronisation mit wait() und notify() Java Basics - Anfänger-Themen 3
L Thread-Frage Java Basics - Anfänger-Themen 2
S Thread.sleep () - Frage Java Basics - Anfänger-Themen 16
O Thread Frage Java Basics - Anfänger-Themen 6
A Frage zu Datenzugriff bei new Thread(new Runnable) Java Basics - Anfänger-Themen 8
M Frage zur Methode Thread.sleep() Java Basics - Anfänger-Themen 6
S Thread-Frage Java Basics - Anfänger-Themen 17
G SWT Thread Verständniss frage Java Basics - Anfänger-Themen 6
G Frage zur Thread-Programmierung Java Basics - Anfänger-Themen 5
G Thread Erzeuger-Verbraucher-Frage Java Basics - Anfänger-Themen 4
R Frage zu Thread und aufruf von Methoden Java Basics - Anfänger-Themen 2
R Thread(Group)-Frage Java Basics - Anfänger-Themen 4
R Thread-Frage Java Basics - Anfänger-Themen 8
Leyla Thread isInterrupt Java Basics - Anfänger-Themen 18
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
A Thread XML-Dateien zusammenfügen Java Basics - Anfänger-Themen 11
F influxdb Upload in eigenem Thread Java Basics - Anfänger-Themen 2
frager2345 Thread - Methoden synchronized deklarieren Java Basics - Anfänger-Themen 10
berserkerdq2 Größter unterschied von extends thread und implements runnable? Java Basics - Anfänger-Themen 2
T Thread beenden aus zweiter Klasse Java Basics - Anfänger-Themen 4
A Thread - Synchronized Java Basics - Anfänger-Themen 10
A Thread Producer - Consumer Java Basics - Anfänger-Themen 1
A Thread-Semhapore Java Basics - Anfänger-Themen 0
A Thread Exchanger Java Basics - Anfänger-Themen 22
A Thread-Cyclicbarrier Java Basics - Anfänger-Themen 4
B In einem Thread Endlosschleife beenden Java Basics - Anfänger-Themen 19
A Thread-Verklemmung Java Basics - Anfänger-Themen 10
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
A Thread find number Java Basics - Anfänger-Themen 8
F Thread.sleep() Java Basics - Anfänger-Themen 5
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
A Thread Java Basics - Anfänger-Themen 3
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
A Thread Java Basics - Anfänger-Themen 8
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
M Thread-Zustände Java Basics - Anfänger-Themen 6
CptK For-Schleife in Thread nach jedem Durchlauf pausieren Java Basics - Anfänger-Themen 35
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
B Endlosschleife Thread sauber beenden Java Basics - Anfänger-Themen 19
D Java Thread wartet nur ein mal Java Basics - Anfänger-Themen 1
D Java Thread wartet nur ein mal Java Basics - Anfänger-Themen 0
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
C Thread und TimerTask, Verstädnisproblem Java Basics - Anfänger-Themen 10
amgadalghabra Sorting Thread Launcher Java Basics - Anfänger-Themen 3
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
A Thread Java Basics - Anfänger-Themen 4
A Thread Java Basics - Anfänger-Themen 1
A Thread Java Basics - Anfänger-Themen 0
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
L Liste in anderem Thread laden Java Basics - Anfänger-Themen 1
B Thread / Prozess stoppen? Java Basics - Anfänger-Themen 22
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
W Thread Aufgabe - Vorgehensweise Java Basics - Anfänger-Themen 8
L Liste in anderem Thread laden Java Basics - Anfänger-Themen 0
J Threads PrograssBar update während thread Java Basics - Anfänger-Themen 13
D Compiler-Fehler Wert auf Datenbank übertragen und Sleep Thread Java Basics - Anfänger-Themen 3
Spencer Reid JavaFX Memory Thread.sleep Java Basics - Anfänger-Themen 1
S Thread.sleep mit JProgressBar Java Basics - Anfänger-Themen 1
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
J JavaFX -> SocketIO -> Thread -> Update Label Java Basics - Anfänger-Themen 13
J Thread Handling Java Basics - Anfänger-Themen 9
A Problem mit Thread.sleep Java Basics - Anfänger-Themen 4
C Thread in Methode + raus aus der Schleife Java Basics - Anfänger-Themen 10
E Threads Thread in While-Schleife nur einmal starten Java Basics - Anfänger-Themen 2
F Daten von Thread an den aufrufenden zurückgeben Java Basics - Anfänger-Themen 22
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
B Thread Problem Java Basics - Anfänger-Themen 7
N KeyListener in Thread Java Basics - Anfänger-Themen 0
M Thread.sleep() Funktion Java Basics - Anfänger-Themen 1
W JLabel in Main aus Thread verändern. Java Basics - Anfänger-Themen 4
D Ausgeben welcher Thread gerade Arbeitet Java Basics - Anfänger-Themen 8
N Threads Thread-Fehler Java Basics - Anfänger-Themen 2
F Thread um Uhrzeit ausführen Java Basics - Anfänger-Themen 5
F Get/Post als eigener Thread mit Rückgabe Java Basics - Anfänger-Themen 5
J Exception in thread "main" Java Basics - Anfänger-Themen 1
F Thread der auf eine Queue wartet, sicher beenden Java Basics - Anfänger-Themen 4
B Animation mit Thread(s) Java Basics - Anfänger-Themen 23
I Thread.sleep (1000); Java Basics - Anfänger-Themen 1
M Threads Jede Klasse einem Thread zuweisen Java Basics - Anfänger-Themen 7
J Java Thread cancel() und wiederbeleben Java Basics - Anfänger-Themen 4
J BouncingBalls 1 Thread Java Basics - Anfänger-Themen 3
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
J Timer oder Thread programmieren ? Java Basics - Anfänger-Themen 10
fLooojava Laufender Thread | Boolean ändern Java Basics - Anfänger-Themen 9
T Thread Pool mit Work Stealing Java Basics - Anfänger-Themen 1
R Java Thread Java Basics - Anfänger-Themen 10
J Welche Methoden laufen im neuen thread ?? Java Basics - Anfänger-Themen 9
S Java memory fehler: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa Java Basics - Anfänger-Themen 5
K Thread - Methoden in die run Methode Schreiben Java Basics - Anfänger-Themen 5
N Threads Exception in thread "main"... Feher bei dem Versuch ein Radius zu berechnen Java Basics - Anfänger-Themen 4
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
V Threads Exception in Thread behandeln Java Basics - Anfänger-Themen 3
S Methoden Multi-Thread und Methoden Objects. Java Basics - Anfänger-Themen 1
J Thread erstellen (BlueJ Projekt) Java Basics - Anfänger-Themen 3
P Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 1
F Threads Variable aus einem Thread in main Methode? Java Basics - Anfänger-Themen 9
K Exception in thread "main" Java Basics - Anfänger-Themen 7
E Was ist ein idle-thread? Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben