Java - Threads: Unterschied zwischen den Versionen
Aus Wikizone
| Zeile 7: | Zeile 7: | ||
* Objekt der Klasse erstellen | * Objekt der Klasse erstellen | ||
* start() Methode aufrufen (nicht run() sonst läuft es nicht parallel) | * start() Methode aufrufen (nicht run() sonst läuft es nicht parallel) | ||
| + | <pre> | ||
| + | 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(); | ||
| + | </pre> | ||
| + | Vorteil: Der Konstruktor des Threads kann ohne runnable Objekt aufgerufen werden, weil das Objekt die run Methode schon geerbt hat. | ||
== Thread über implements Runnable == | == Thread über implements Runnable == | ||
* Klasse erstellen die Runnable implementiert -> Vorteil extends ist frei für andere Vererbung | * Klasse erstellen die Runnable implementiert -> Vorteil extends ist frei für andere Vererbung | ||
Version vom 9. März 2013, 17:51 Uhr
Links
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();