1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Java Thread Programmierung

  • Gedor@
  • 23. Oktober 2010 um 01:55
  • Unerledigt
  • Gedor@
    5
    Gedor@
    Mitglied
    Punkte
    195
    Beiträge
    27
    • 23. Oktober 2010 um 01:55
    • #1

    Hallo, habe da eine Frage bezüglich der Thread Programmierung.

    also das sind meine Java files :

    Code
    public class AThread implements Runnable{
    
    
        @Override public void run() 
      { 
        for ( int i = 0; i < 20; i++ ) 
          System.out.println( new java.util.Date() ); 
      } 
    
    
        
    }
    Alles anzeigen
    Code
    public class BThread implements Runnable {
    
    
        
    
    
       
    
    
    
    
       @Override public void run()
      {
        for ( int i = 0; i < 20; i++ )
          System.out.println( i );
      }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    }
    Alles anzeigen

    und die classe mit der main Methode

    Code
    public class Datagram {
    
    
        public static void main(String[] args){
    
    
    
    
            Thread a = new Thread (new AThread());
            a.start();
    
    
            Thread b = new Thread (new BThread());
            b.start();
    
    
        }
    }
    Alles anzeigen

    Die Ausgabe sollte aussehen als würden die Threads parallel arbeiten
    aber bei mir wird zu erst einer und dann der andere ausgeführt, also zuerst a dann b.
    Habe ich da etwas falsch gemacht?

    Gedor@:devil:
    -------------
    [SIZE=-1]Dream as if you'll live forever, live as if you'll die today.[/SIZE]

  • Paulchen
    1
    Paulchen
    Gast
    • 23. Oktober 2010 um 02:38
    • #2
    Zitat von Gedor@

    Habe ich da etwas falsch gemacht?

    Nein, das schaut schon richtig aus. Möglicherweise ist aber Thread A so schnell, dass er mit der Ausgabe fertig ist, bevor Thread B startet. Bau einfach künstliche Verzögerungen mit Thread.sleep() ein.

  • Gedor@
    5
    Gedor@
    Mitglied
    Punkte
    195
    Beiträge
    27
    • 23. Oktober 2010 um 10:58
    • #3

    Mit den Verzögerungen sieht man die Parallelität aber ich dachte dass das ohne die Verzögerungen geht. Danke

    Gedor@:devil:
    -------------
    [SIZE=-1]Dream as if you'll live forever, live as if you'll die today.[/SIZE]

  • Zaru
    8
    Zaru
    Mitglied
    Reaktionen
    12
    Punkte
    592
    Beiträge
    116
    • 23. Oktober 2010 um 10:59
    • #4

    Lass mal die Schleifen länger als 20 mal laufen. Bei entsprechendem Aufwand wird das schon parallel sein.

    Aber das hängt ja davon ab, wie die Prozessorzeit "gescheduled" wird, von daher wir das Ergebnis bei jedem Versuch anders aussehen, ohne dass du da groß was beeinflussen könntest.

  • Gedor@
    5
    Gedor@
    Mitglied
    Punkte
    195
    Beiträge
    27
    • 25. Oktober 2010 um 12:27
    • #5

    Danke

    Gedor@:devil:
    -------------
    [SIZE=-1]Dream as if you'll live forever, live as if you'll die today.[/SIZE]

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung