Java - Threads

Aus Wikizone
Wechseln zu: Navigation, Suche

Links

http://openbook.galileocomputing.de/javainsel9/javainsel_14_002.htm#mj45ef6b526108a654e748170e45b47506

Thread über Vererbung von Thread

  • Klasse erstellen die von Thread erbt
  • run() Methode mit gewünschter Funktionalität überschreiben
  • Objekt der Klasse erstellen
  • start() Methode aufrufen (nicht run() sonst läuft es nicht parallel)
public class DateThread extends Thread
{
  @Override public void run()
  {
    for ( int i = 0; i < 20; i++ )
      System.out.println( new Date() );
  }
}

Thread t = new DateThread();
t.start();
// oder
// new DateThread().start();

Vorteil: Der Konstruktor des Threads kann ohne runnable Objekt aufgerufen werden, weil das Objekt die run Methode schon geerbt hat.

Thread über implements Runnable

  • Klasse erstellen die Runnable implementiert -> Vorteil extends ist frei für andere Vererbung
  • Aufgabe in run() definieren
  • Thread Objekt erstellen und diesem ein Objekt der neuen Klasse übergeben.
  • Thread mit start() starten

Beispiel

package com.tutego.insel.thread;

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

class CounterCommand implements Runnable
{
  @Override public void run()
  {
    for ( int i = 0; i < 20; i++ )
      System.out.println( i );
  }
}

Thread t1 = new Thread( new DateCommand() );
t1.start();

Thread t2 = new Thread( new CounterCommand() );
t2.start();