所以基本上我的线程不会执行..
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
的屏幕截图答案 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
,是因为只有在向其添加内容(一些额外功能)时才需要扩展内容。此外,您可以扩展 只有一个 类,而您可以 实施 多个接口。