我的线程不会运行? Java的

时间:2014-03-23 06:17:26

标签: java multithreading

所以基本上我的线程不会执行..

import java.lang.*;

class Practice extends Thread {
    public void run()
    {
        System.out.println("Executed by thread");
    }
}

class Thread_Demo {
    public static void main(String args[])
    {
        Practice p = new Practice();
        Thread th = new Thread(p,"My Thread");
        th.start();
        p.start();
    }
}

请帮我这个,线程不会执行。甚至还获得了此http://prntscr.com/33b20m

的屏幕截图

2 个答案:

答案 0 :(得分:3)

它运行。它打印"由线程执行"两次。

您是否右键单击了Thread_Demo类并选择"运行"?

答案 1 :(得分:2)

您的代码没有执行,因为它没有保存在Eclipse中。如果在保存后运行它,您会发现它会打印两次结果。要使其工作(仅打印一次),请使用此

Practice p = new Practice();
p.start();

<强> TIPS: 不要让Parctice课程延长Thread(这是我之后添加的原因)。改为实施Runnable

class Practice implements Runnable {
    Thread t;
    boolean stopReq;
    public Practice() {
        //start(); - You may automatically start it.
    }
    public void start() {
        stopReq = false;
        t = new Thread(this);
        t.start();
    }
    public void stop() {
        stopReq = true;
        t = null;;
    }

    public void run()
    {
        for (int i = 0; i < 10 && !stopReq; i++) {
            System.out.println("Executed by thread");
        }
    }
}

class Thread_Demo {
    public static void main(String args[])
    {
        Practice p = new Practice();
        p.start();
    }
}

我之所以建议您不扩展Thread ,是因为只有在向其添加内容(一些额外功能)时才需要扩展内容。此外,您可以扩展 只有一个 类,而您可以 实施 多个接口。