Java Thread没有执行

时间:2014-08-10 21:54:55

标签: java multithreading

我试图用Java创建一个线程,看起来它会起作用(线程正在启​​动,如果我尝试在代码中编写一些随机的思考,程序将在线程中返回错误-0。但由于某种原因,Thread中的代码没有执行。当我在开头放一个简单的system.out.printl时,它没有显示。当我没有找到任何东西时我没有找到任何东西寻找这个问题,所以我希望你能帮助我。

主要:

  public class Main {
        public static void main(String[] args) throws java.io.IOException{

            SendMessages sm = new SendMessages();
            sm.start();

            System.out.println("2");

            while(true){
            }
        }
 }

主题:

public class SendMessages extends Thread {
    public void run(String[] args) throws java.io.IOException {

        System.out.println("1");
    }   
}

" 2"正在打印,但不是" 1"。

问候

2 个答案:

答案 0 :(得分:3)

run不会抛出异常,也不会参数。

你必须覆盖好的:

public void run() {
}

您可以添加@Override注释,以确保覆盖好注释:

@Override
public void run() {
}

答案 1 :(得分:1)

您没有正确覆盖run()方法。运行的正确方法签名是: public void run(),没有参数。如果将SendMessages类更改为

public class SendMessages extends Thread {
    @Override
    public void run() {
        System.out.println("1");
    }   
}

你应该看到1印刷。这就是为什么@Override注释很有用 - 它会告诉您何时编写的方法实际上没有覆盖任何内容。