为什么我不能开始一个线程

时间:2014-03-27 19:23:01

标签: java multithreading

你能帮助我理解为什么我的线程没有出现在调试器中。 好吧,正如您可以从main方法中的注释中看到的,我可以运行Task实例的perform()方法。但是当我尝试创建一个帖子时,它并没有开始。任何断点都不会显示Thrd的run()方法被调用。

public class ParallelThreads {
    public static void main(String[] args) {
        Task t = new Task("C:\\FilesToRead\\1.txt");
        //System.out.println(t.perform()); // It works!
        Thread thread = new Thread(t);
    }
}

public class Thrd implements Runnable{
    TaskWithResult task;

    public Thrd(TaskWithResult task){
        this.task = task;
    }

    @Override
    public void run(){
        task.perform();
    }   

}

public interface TaskWithResult {
    long perform();    
}

public class Task implements TaskWithResult, Runnable {

    File fileToRead;

    public Task(String file) {
        fileToRead = new File(file);
    }

    long count = 0;

    @Override
    public void run(){
        perform();
    }

    @Override
    public long perform() {
        ...
        return count;
    }
}

1 个答案:

答案 0 :(得分:6)

您刚刚创建了Thread的实例,您需要通过

启动它
thread.start();