tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
463
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    sampi sampi ist offline Grünschnabel
    Registriert seit
    Jun 2004
    Beiträge
    2
    Hi,

    wie kann ich die Konsole Ausgabe synchronisieren?

    Ich habe zwei Java Klassen (extends Thread)
    In der dritte Klasse ( mit main Methode) rufe ich beide Threads auf.
    Der erste erwatet von mir einige Eingabe bevor er weiter machen kann ("Geben sie ein Zahl ein: ...");
    Wie kann ich der zweite dazu bringen , seine Konsole Ausgabe zu machen erst nachdem ich mit dem ersten fertig bin und nicht dazwischen (Nachdem ich die Angabe gemacht habe)?
    => jedesmal wenn eine Engabe gemacht werden soll, soll der zweite Thread immer warten


    Gruss
     

  2. #2
    Registriert seit
    Mar 2001
    Ort
    München
    Beiträge
    4.785
    Einfache Variante?

    Thread in einer Schleife laufen lassen,
    Wert abfragen. Wert nicht gesetzt? Thread.sleep(milliseconds)
    Erneuter Schleifendurchlauf.
     
    Erst wenn der letzte Programmierer eingesperrt...
    ...und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
    -------------------
    chris: hey Tom hast du eigentlich ne Freundin
    jdar: ich bin tutorials.de Mod!

  3. #3
    sampi sampi ist offline Grünschnabel
    Registriert seit
    Jun 2004
    Beiträge
    2
    Hi Christian,

    ich muss ja die gleiche Variable in beide schleife abfragen,
    und da die 2 Threads in 2 verschieden Klasse sind, wie und wo soll ich diese Variable deklarieren?
    Gruss
     

  4. #4
    Registriert seit
    Mar 2001
    Ort
    München
    Beiträge
    4.785
    Wo es passt musst du selber sehen, ich keine dein OOD nicht.
     
    Erst wenn der letzte Programmierer eingesperrt...
    ...und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
    -------------------
    chris: hey Tom hast du eigentlich ne Freundin
    jdar: ich bin tutorials.de Mod!

  5. #5
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Versuchs doch einfach mal mit
    Code :
    1
    
     threadAufDenGewartetWerdenSoll.join();

    Beispiel:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    
    /*
     * Created on 02.06.2004
     */
     
    /**
     * @author Administrator
     */
    public class ThreadTest {
     
        public static void main(String[] args) {
     
            final Thread thread1 = new Thread() {
                public void start() {
                    super.start();
                    System.out.println("Thread1 gestartet");
                }
                public void run() {
     
                    try {
                        for (int i = 0; i < 10; i++) {
                            Thread.sleep(250l);
                            System.out.println("Thread1: " + i);
                        }
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            };
     
            final Thread thread2 = new Thread() {
                public void start() {
                /* Zum Spaß mal dieses Stück hier auskommentieren... */ 
                    try {
                        //Dieser aufruf Blockiert so lange bis die Run-Methode des Threads
                        //an dem wir join() aufgerufen haben beendet ist.
                        thread1.join();
                    } catch (InterruptedException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
                /* Zum Spaß mal dieses Stück hier auskommentieren...    */
                    
                    super.start();
                    System.out.println("Thread2 gestartet");
                }
     
                public void run() {
                    try {
                        for (int i = 0; i < 10; i++) {
                            Thread.sleep(250l);
                            System.out.println("Thread2: " + i);
                        }
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            };
     
            thread1.start();
            thread2.start();
     
        }
    }

    Gruß Tom
     

Ähnliche Themen

  1. Ausgabe in Konsole, sodass Text änderbar
    Von Smokers im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 10.06.10, 08:56
  2. Antworten: 0
    Letzter Beitrag: 31.05.09, 15:01
  3. Ausgabe in cmd-Fenster statt Konsole
    Von Ashaman im Forum Java Grundlagen
    Antworten: 5
    Letzter Beitrag: 01.07.08, 15:03
  4. Webserver Apache2 Ausgabe Logfiles Konsole
    Von tplanitz im Forum Hosting & Webserver
    Antworten: 0
    Letzter Beitrag: 11.12.05, 10:30
  5. [winAPI] Konsole für Debug-Ausgabe
    Von uhu01 im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 23.04.05, 20:57