Priorität setzen bei Thread

Status
Nicht offen für weitere Antworten.

reibi

Top Contributor
Hallo zusammen,

ich möchte die Priorität meiner 2 Threads setzen ... nur gelingt mir das nicht.

so siehts aus:

Code:
	   SpecialThread myThread01=new SpecialThread("A");
		SpecialThread myThread02=new SpecialThread("B");

		myThread01.setPriority(10);
		myThread02.setPriority(1);
		
		myThread01.start();
		myThread02.start();


Beide Threads mach das Gleiche in ner Schleife und schreiben irgendwas auf den Bildschirm. Durch das setzen der Priorität sollte eigendlich der erste Thread häufiger dran sein. oder?

Das ist aber nicht der Fall!

Beide wechseln sich immer ab, auch wenn ich die Prioritäten vertausche.

was mach ich falsch?

Danke für die Hilfe ;-)
 

reibi

Top Contributor
Hallo Wildcard, so siehts aus:

Code:
class SpecialThread extends Thread {

	SpecialThread() {
	} 

	SpecialThread(String threadName) {
		super(threadName);
	} 

	public void run() {
		
		for (int i = 0; i < 100; i++) {
			
			try {
				Thread.sleep(100);
				System.out.println(i+" - "+Thread.currentThread().getName());
			} catch (Exception e) {
				// TODO: handle exception
			}
		}
		
	} // end run()
}

Danke fürs kucken ;-)
 

Wildcard

Top Contributor
Da deine Threads mehr schlafen als zu arbeiten, kann der Scheduler beide Threads problemlos bedienen ohne das die Priorität etwas ändern würde.
 

reibi

Top Contributor
Hallo Wildcard, also es funzt!

nur wie er abwechselt entscheidet er trotzdem selber. Damit kann man irgendwie nicht rechnen. Im Durchnitt wird es wohl die eingestellte Prioritätsvergabe sein.

vielen Dank ;-)
 

Wildcard

Top Contributor
Natürlich darfst du damit nicht rechnen. Du sagst lediglich 'dieser Thread ist mir wichtiger als dieser'. Was der Scheduler daraus macht darf dich nicht interessieren.
 
H

HansNeupert

Gast
Auf den Scheduler darf man sich nie verlassen.
Nebenbei gesagt verhält sich der Scheduler von JVM zu JVM anders. In Core Java hatte ich außerdem mal gelesen, dass die LinuX-Implementation der JVM Thread-Prioriäten gar nicht berücksichtigt.

mfg
 
G

Guest

Gast
HansNeupert hat gesagt.:
Auf den Scheduler darf man sich nie verlassen.
Nebenbei gesagt verhält sich der Scheduler von JVM zu JVM anders. In Core Java hatte ich außerdem mal gelesen, dass die LinuX-Implementation der JVM Thread-Prioriäten gar nicht berücksichtigt.

mfg
Hast Du da noch einen Link auf den Artikel? Wenn dem tatsächlich so wäre könnte es im Ernstfall zu sehr ungewünschte Verhaltensweisen führen. Die Priorität sollte zumindest die Vorrangigkeit der Threads regeln. Auf Prozessebene geht's hier ja noch mit "nice" , aber prozessintern sollte es definitiv auch möglich sein.
 

Wildcard

Top Contributor
Vielleicht stammt das noch aus der Zeit als die Linux VM Green Threads verwendet hat. Mir ist jedenfalls nichts derartiges bekannt.
 
H

HansNeupert

Gast
Core Java ist an sich so das beste Werk zu Java, was da drin steht is au richtig. In der aktuellen Version die vor ein paar Wochen erschien steht: "In the Sun JVM for Linux, thread priorities are ignored altogether - all threads have the same priority."
 

Saxony

Top Contributor
Hiho,

unter diesem Link hier kann man es sogar lesen.

So ich habe aber mal mich noch weiter informiert. In meinem Buch "Java Threads" 3rd Edition von 2004, welches bis JDK1.5 geht, steht folgendes:

Java Threads Kap. 9 Seite 183 hat gesagt.:
Until JDK 1.3, Linux-based virtual machines tended to use a green thread model.
[...]
JDK 1.3 added support for Linux native threads. However, the Linux kernel at the time was not optimal for threaded application; in particular, the ps command listed all threads as if they were different processes.

New Linux kernels use the Native Posix Thread Library (NPTL), which provides the same one-to-one mapping of Java threads to kernel threads that we've seen in other operating systems. The complex priority calculation for those threads is similar to what we saw on Solaris, where Java priority is only a small factor in the calculation. JDK 1.4 is the first version of Java to support this new kernel.

bye Saxony
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Priorität der Event-Handlings setzen Allgemeine Java-Themen 4
O Zufallszahl mit Priorität Allgemeine Java-Themen 4
M Warteschlange mit Priorität Allgemeine Java-Themen 6
E MouseListener Priorität Allgemeine Java-Themen 4
T Programm auf niedriger Priorität laufen lassen Allgemeine Java-Themen 4
P Priorität einen Programms erhöhen, wie mach ich das? Allgemeine Java-Themen 3
berserkerdq2 Was heißt es mit FXML Listener zu setzen ind Buttons zu erstellen? Allgemeine Java-Themen 6
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
Y Bild in JPanel setzen Allgemeine Java-Themen 2
C javax.mail.Message message.setreplyto() null setzen (keine replyto Adresse) Allgemeine Java-Themen 25
JavaNewbie2.0 Anführungszeichen setzen Allgemeine Java-Themen 3
OnDemand FTP4J Rechte setzen Allgemeine Java-Themen 1
J Mausposition setzen Allgemeine Java-Themen 2
I Setzen und Lesen eines Objektes (Enum?) Allgemeine Java-Themen 10
N event_scheduler richtig setzen? Allgemeine Java-Themen 1
O log4j pfad per umgebungsvariable setzen Allgemeine Java-Themen 5
F JTextArea Cursor in die nächste Zeile setzen Allgemeine Java-Themen 2
G JDK setzen Allgemeine Java-Themen 4
H java.util.logging Formatter Optionen setzen Allgemeine Java-Themen 2
iB0T "goto" Befehl aus Batch in Java und Variablen wert immer wieder neu setzen Allgemeine Java-Themen 4
D ClassLoader für Variablen einer Klasse setzen Allgemeine Java-Themen 24
C Datentypen int in bytes zerlegen und wieder zusammen setzen Allgemeine Java-Themen 13
M Session-Parameter setzen? Allgemeine Java-Themen 10
D Alle Variablen final setzen ? Allgemeine Java-Themen 26
I %AppData% Variable für einen Prozess setzen Allgemeine Java-Themen 23
N java.util.Date - Zeit auf 00:00 setzen Allgemeine Java-Themen 3
T HTTP Skript für Passwortgeschützte Seite :: Häkchen setzen und Download Allgemeine Java-Themen 4
L Variablen Systemvariablen setzen Allgemeine Java-Themen 3
G JNDI Context setzen Allgemeine Java-Themen 3
S "Working Directory" setzen..? Allgemeine Java-Themen 3
A Datei als Object einlesen und das Object als Singleton instance setzen. Allgemeine Java-Themen 13
N Timeout setzen Allgemeine Java-Themen 10
P Einzelne Bits in einem Byte-Array setzen Allgemeine Java-Themen 2
X JTable mit Checkboxen -> Setzen (true/false) der Checkboxen per Mouseklick... Allgemeine Java-Themen 3
S String intelligent zusammen setzen Allgemeine Java-Themen 8
A Umgebungsvariable unter Windows Vista setzen Allgemeine Java-Themen 60
N ranges setzen Allgemeine Java-Themen 5
O getRuntime().Exec() - Environment - Variablen setzen? Allgemeine Java-Themen 2
Y beliebige Dateigröße setzen Allgemeine Java-Themen 10
G Proxy- Server setzen Allgemeine Java-Themen 2
thE_29 Rechnungen (Sättigung setzen) verschnellern Allgemeine Java-Themen 13
M nichtreferenzierte Objekte auf NULL setzen -> Performance Allgemeine Java-Themen 4
M Focus setzen - Frage zu FAQ Artikel Allgemeine Java-Themen 6
0 Taste setzen Allgemeine Java-Themen 2
B Listener dynamisch setzen Allgemeine Java-Themen 6
F Werte von Member-Variablen erst im Konstruktor setzen? Allgemeine Java-Themen 7
P Datum in einer DateComboBox setzen Allgemeine Java-Themen 7
MQue Datum in ComboBox setzen Allgemeine Java-Themen 9
0 Timeout für Thread setzen? Allgemeine Java-Themen 2
MQue Objektvariablen setzen Allgemeine Java-Themen 3
MQue Button Attribute setzen Allgemeine Java-Themen 14
L datum nach dem kopiervorgang neu setzen? Allgemeine Java-Themen 2
P JNI_CreateVM und -Xms –Xmx setzen Allgemeine Java-Themen 10
R Array komplett auf null setzen Allgemeine Java-Themen 10
B Choice setzen Allgemeine Java-Themen 5
O Environment Variable Setzen Allgemeine Java-Themen 2
O Schreibrechte setzen? Allgemeine Java-Themen 4
TheJavaKid Focus für KeyListener setzen Allgemeine Java-Themen 5
D Position des Mauszeigers setzen! Allgemeine Java-Themen 3
S Odnericon neu setzen/auslesen etc. Allgemeine Java-Themen 2
G Konsoleneingabe: vordefinierte werte setzen? geht das? Allgemeine Java-Themen 4
foobar java.library.path Property setzen Allgemeine Java-Themen 5
Z Parallel Port, setzen der einzelnen Pins Allgemeine Java-Themen 4
C Setzen der Cursorposition Allgemeine Java-Themen 2
G Standard-Drucker mit Java setzen Allgemeine Java-Themen 4
T Classpath per Java Programm setzen Allgemeine Java-Themen 9
D jdic classpath setzen Allgemeine Java-Themen 2
S Grafiken/ImageIcon setzen Allgemeine Java-Themen 24
S File Encoding im Programm setzen? Allgemeine Java-Themen 3
clemson Umgebungsvariable setzen und lesen Allgemeine Java-Themen 9
F Verfügbaren Heap-Speicher setzen Allgemeine Java-Themen 2
M Content-Type setzen und auslesen? Allgemeine Java-Themen 2
C Objekte null setzen? Allgemeine Java-Themen 7
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

Ähnliche Java Themen

Neue Themen


Oben