Nebenläufige Programmierung

valentina2013

Bekanntes Mitglied
Hi ihr lieben,
es ist sehr spätn aber ich hoffe es sind noch einige excellente Javakenner im Forum unterwegs und können mir helfen ;)

ich habe Folgender Code
Java:
public class MyThread extends Thread {
    private double zahl;
    private static double staticZahl;
    public MyThread(double Zahl){
        this.zahl=zahl;
    }
    public void run(){
        while(staticZahl>=0){
            staticZahl-=zahl;
            /*try{
             * sleep(1000);
             * }catch(InterruptedException e){
             * e.printStackTrace();
             * }*/System.out.println(staticZahl);
        }
    }
    public static void main(String[] args){
        MyThread.staticZahl=2;
        MyThread thread1=new MyThread(-1.5);
        MyThread thread2=new MyThread(0.5);
        MyThread thread3=new MyThread(1);
       
        thread1.start();
        thread2.start();
        thread3.start();
    }

}
. Lasse ich den laufen, läuft er unendlich ( nicht deterministich) wird aber der Wert 2.0 ausgegeben. ich hätte eher erwartet dass der 3.5 wäre . Kann mir bitte einer erklären warum es so ist?
Danke sehr ;)
 

DrZoidberg

Top Contributor
Da ist ein Tippfehler in deinem Code.
In der Zeile
Java:
public MyThread(double Zahl){
sollte zahl klein geschrieben werden.
 

Flown

Administrator
Mitarbeiter
Was wundert dich da? Du initialisierst deine staticZahl mit 2 und jeder Thread überprüft dir, ob diese auch >= 0 ist. Da sie es schon ist, macht kein Thread eine Arbeit. q.e.d
 

JeromeC

Aktives Mitglied
Was wundert dich da? Du initialisierst deine staticZahl mit 2 und jeder Thread überprüft dir, ob diese auch >= 0 ist. Da sie es schon ist, macht kein Thread eine Arbeit. q.e.d
Ich widerspreche nur ungern einem Administrator, aber das ist eine kopfgesteurte Whileschleife.. Sie arbeitet genau solange, wie die Bedingung erfüllt ist, also wird ein Thread mind. einmal die Schleife durchlaufen.
Abgesehen vom Tippfehler im Namen des Übergabeparameters bin ich mir nicht ganz sicher was du mit diesen Rechenoperationen erreichen willst: Dir ist bewusst das Threads parallel ablaufen. Du rechnest mit einer statischen Variable, die du in jedem der 3 Threads veränderst und hast keine Reihenfolge definiert, wann welcher Thread welche Operation ausführen soll.
Das Ergebnis kann daher unterschiedlich ausfallen.
Für den leicht überarbeiteten Code
Java:
public class MyThread extends Thread {
    private double zahl;
    private static double staticZahl;
    private String name;

    public MyThread(double zahl, String name) {
        this.zahl = zahl;
        this.name = name;
    }

    public void run() {
        while (staticZahl >= 0) {
            staticZahl -= zahl;
            System.out.println(name + " = " + staticZahl);
        }
    }

    public static void main(String[] args) {
        MyThread.staticZahl = 2;
        MyThread thread1 = new MyThread(-1.5, "Thread1");
        MyThread thread2 = new MyThread(0.5, "Thread2");
        MyThread thread3 = new MyThread(1, "Thread3");

        thread1.start();
        thread2.start();
        thread3.start();
    }

}
erhielt ich folgende Ausgabe:
Thread3 = 2.5
Thread3 = 1.0
Thread3 = 0.0
Thread3 = -1.0
Thread1 = 2.5
Thread2 = 2.0
Beim wiederholten ausführen kamen schon 5 Zeilen mehr heraus.
Falls du etwas über die Synchronisation in Threads erfahren willst: Link
 
Zuletzt bearbeitet von einem Moderator:

JStein52

Top Contributor
Wieso macht kein Thread eine Arbeit ? Sie sollte doch dann dekrementiert werden ??!!

Edit: ok, hat schon einer kommentiert.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Threads Nebenläufige Programmierung Java Basics - Anfänger-Themen 6
T Nebenläufige Anzeigeaktualisierung Java Basics - Anfänger-Themen 2
S Nebenläufige Methode Java Basics - Anfänger-Themen 3
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
F Automat-Programmierung Java Basics - Anfänger-Themen 30
N Lambdas, Methodenref, fkt Programmierung ? Java Basics - Anfänger-Themen 10
districon Dynamisch Programmierung/Backtracking/Memoization Java Basics - Anfänger-Themen 3
S Buchstaben Programmierung Bedeutung Java Basics - Anfänger-Themen 4
S Hilfe bei Programmierung einer Hotelabrechnung Java Basics - Anfänger-Themen 5
enjoykimii Strukturierte Programmierung Hilfe Java Basics - Anfänger-Themen 29
A Frage zur programmierung Java Basics - Anfänger-Themen 12
Nerdinfekt Programmieranfänger, Schwierigkeiten mit der Programmierung Java Basics - Anfänger-Themen 6
U Compiler-Fehler Programmierung einer Drehkugel Java Basics - Anfänger-Themen 8
L Programmierung mit Hash Java Basics - Anfänger-Themen 3
C Wie habt Ihr angefangen mit der Java Programmierung, ohne Programmiervorkenntnisse Java Basics - Anfänger-Themen 8
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
S GUI-Programmierung Sudoku-Rätsel lösen Java Basics - Anfänger-Themen 1
B Fibonacci Zahlen dynamische Programmierung Java Basics - Anfänger-Themen 7
S Programmierung simulieren - aber wie?! Java Basics - Anfänger-Themen 3
H Java Programmierung Java Basics - Anfänger-Themen 3
W Problem bei Programmierung von Monte-Carlo-Integration Java Basics - Anfänger-Themen 12
D Guten Tag mache gerade eine Umschulung zum FiSi war leider jetzt 2 Wochen Krank und wir hatten Prozendurale Programmierung. Java Basics - Anfänger-Themen 3
P Rechnen mit Brüchen - objektorientierte Programmierung Java Basics - Anfänger-Themen 18
D Objektorientierte Programmierung Java Basics - Anfänger-Themen 13
F Attribute bei Objektorientierter Programmierung Java Basics - Anfänger-Themen 11
F Ich brauche Hilfe bei Objektorientierter Programmierung... Java Basics - Anfänger-Themen 19
F Problem beim entfernen von mehreren Listenelementen auf einmal (Programmierung des Spiels Arschloch) Java Basics - Anfänger-Themen 1
Q Objektorientierte Programmierung Java Basics - Anfänger-Themen 17
J Texte für Java Programmierung besser verstehen? Java Basics - Anfänger-Themen 2
C GUI Programmierung unter Windows mit Java womit? Java Basics - Anfänger-Themen 11
D Collections Aufgaben Java-Programmierung Überforderung Java Basics - Anfänger-Themen 36
A GUI Programmierung mit Textfield Java Basics - Anfänger-Themen 3
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 3
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 2
U Brauche Hilfe bei Programmierung einer Produktdatenbank App Java Basics - Anfänger-Themen 4
L Dynamische Programmierung Java Basics - Anfänger-Themen 0
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
A Methoden Habe ein Problem bei folgender Programmierung Java Basics - Anfänger-Themen 15
slejden Erste Schritte Frage zur OOP (objektorientierten Programmierung Java Basics - Anfänger-Themen 4
Henri Paare Frage über Java Programmierung Java Basics - Anfänger-Themen 10
S Programmierung eines Geldwechselautomaten! Java Basics - Anfänger-Themen 2
R Einige Neulingsfragen (Wrapper, GUI-Programmierung) Java Basics - Anfänger-Themen 4
D JavaBeans und die visuelle Programmierung Java Basics - Anfänger-Themen 2
M Dringend Experten für Scala-Play basierte Programmierung!!!! Java Basics - Anfänger-Themen 0
Z Programmierung eines Stacks Java Basics - Anfänger-Themen 19
A Programmierung herangehensweise Java Basics - Anfänger-Themen 9
T Objektorientierte Programmierung - Kein Plan wieso das nicht funktioniert! Java Basics - Anfänger-Themen 6
G 3D-Spiele-Programmierung Java Basics - Anfänger-Themen 3
I Programmierung-Hausaufgabe: Hilfe benötigt Java Basics - Anfänger-Themen 8
R Kann jemand diese Java Programmierung machen? Versteh ich leider nicht Java Basics - Anfänger-Themen 17
T Nachhilfe JAVA Programmierung Java Basics - Anfänger-Themen 1
R Schaffe es nicht Random-Programmierung zu vollenden. Wo liegt der Fehler in diesem Code? Java Basics - Anfänger-Themen 13
N Socket-Programmierung Java Basics - Anfänger-Themen 4
kaoZ Android Programmierung / Erstellen einer neuen Instanz Java Basics - Anfänger-Themen 2
O OOP Input & Output in der GUI-Programmierung Java Basics - Anfänger-Themen 2
O Java Grafik-Programmierung? Java Basics - Anfänger-Themen 16
F Fehler bei Array und Index Programmierung Java Basics - Anfänger-Themen 18
K Objektorientierten Programmierung Java Basics - Anfänger-Themen 3
R Einstieg in Programmierung Java Basics - Anfänger-Themen 8
W Problem bei MineSweeper Programmierung Java Basics - Anfänger-Themen 10
N Objektorientierte Programmierung: Erben von 2 Klassen - wie ist korrekte Vorgehensweise? Java Basics - Anfänger-Themen 16
D Best Practise für Programmierung Java Basics - Anfänger-Themen 7
D Erste Schritte Einstieg in die Java Spiel Programmierung Java Basics - Anfänger-Themen 7
W objektorientierte Programmierung Java Basics - Anfänger-Themen 25
W objektorientierte Programmierung - String in andere Klasse übergeben Java Basics - Anfänger-Themen 13
E Algorithmen und Programmierung - Datum und Zeit ausgeben? Java Basics - Anfänger-Themen 8
Grejak OOP Einstieg in Objekt-Orientierte-Programmierung Java Basics - Anfänger-Themen 3
D Frage zu Bit Operatoren in der Programmierung Java Basics - Anfänger-Themen 9
U Geräte-Programmierung ? Java Basics - Anfänger-Themen 15
S 2 kurz Fragen zur Möglichkeit der Programmierung Java Basics - Anfänger-Themen 7
T Objektorientierte Programmierung, わからない です Java Basics - Anfänger-Themen 6
J Allgemeine Fragen zur Programmierung Java Basics - Anfänger-Themen 36
N Grafische Programmierung mit jeweils anderen Bildern bei versch. Ergebnissen Java Basics - Anfänger-Themen 9
S Objektorientierte Programmierung Java Basics - Anfänger-Themen 21
M Gui Programmierung Java Basics - Anfänger-Themen 21
J Spielevorschläge für Programmierung Java Basics - Anfänger-Themen 3
O Eisenbahn-Programmierung Java Basics - Anfänger-Themen 8
S Schlechte Programmierung Java Basics - Anfänger-Themen 5
O Probleme bei OO-Programmierung mit Vererbung Java Basics - Anfänger-Themen 18
M Programmierung kürzen??? Java Basics - Anfänger-Themen 5
N Umstieg auf objektorintierte Programmierung Java Basics - Anfänger-Themen 2
N Probleme mit meiner Programmierung Java Basics - Anfänger-Themen 5
M Meine erste Java Programmierung funzt nicht :-( Java Basics - Anfänger-Themen 34
H Programmierung Ampelsteuerung Java Basics - Anfänger-Themen 4
J [Erledigt] Applet Programmierung Java Basics - Anfänger-Themen 4
C Objektorientierte Programmierung Java Basics - Anfänger-Themen 11
T Gui Programmierung lernen Java Basics - Anfänger-Themen 3
E Toolkit (Scanner) Programmierung Java Basics - Anfänger-Themen 5
D Programmierung Profi Java Basics - Anfänger-Themen 18
G Problem bei Programmierung Java Basics - Anfänger-Themen 15
X Objektorientierte Java Programmierung - 3 Fragen zum Code Java Basics - Anfänger-Themen 5
G Problem bei Programmierung Java Basics - Anfänger-Themen 2
G thread programmierung für ANFÄNGER Java Basics - Anfänger-Themen 2
S generic programmierung "ne:w T[X]" Java Basics - Anfänger-Themen 2
A Einstieg in die Programmierung Java Basics - Anfänger-Themen 20
I Frage wegen Wörterbuch Programmierung Java Basics - Anfänger-Themen 13
X Programmierung mit geometrischen Figuren Java Basics - Anfänger-Themen 3
G Opjektorientierte Programmierung (OOP). einfach für euch Java Basics - Anfänger-Themen 4
G Funktions Programmierung Java Basics - Anfänger-Themen 5
W Gui - Grundsätzliche Programmierung Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben