2012-03-28 9 views
0

Wenn ich versuche, Thread (u) zu starten, tut es nichts! das ist, was ich in meiner Klasse haben:Java - Thread startet nicht

private Updater uc; 
Thread t1 = new Thread(uc); 
-bunch of other code- 
t1.start(); 

Updater.java:

public class Updater implements Runnable{ 
public void run(){ 
    System.out.println("I work!"); 
    } 
} 

Ausgang ist nichts. Jeder hat eine Idee warum?

Antwort

9

Es sei denn, ich etwas fehlt - man kann nie uc initialisieren:

uc = new Updater(); 

Wenn Sie sich als Runnable null übergeben, dann Gewinde passiert nur den Nullwert bis hin zu einem internen init-Methode, die aus aufgerufen wird Alle Thread-Konstruktoren, einschließlich derjenigen, die kein Runnable-Argument enthalten.

Wenn das Ziel Runnable NULL ist, führt Thread run() einfach nichts anderes als exit aus. Danke an Jon.

+0

Danke, vergaß darüber :) – TheMorfeus

+2

In der Tat. Wenn Sie 'null' als 'Runable 'übergeben, dann übergibt' Thread' einfach den 'null'-Wert an eine interne' init'-Methode, die von allen 'Thread'-Konstruktoren aufgerufen wird, einschließlich der, die take kein 'Runnable'-Argument. Für den Fall, dass das Ziel 'Runnable' 'null' ist, führt Thread' run() 'einfach nichts anderes als exit aus. – Jon

4

Sieht so aus, als ob Sie eine Null Runnable übergeben. Versuchen Sie:

private Updater uc = new Updater(); 
Thread t1 = new Thread(uc);