我不敢相信这给我带来麻烦。 我的测试extend Thread
不起作用,我的implement Runnable
。我和过去写过的工作线程代码相比,看不出有什么问题。Java扩展线程不工作,但实现了Runnable。我不明白为什么?
有人能指出我的菜鸟错误吗?
不工作
public class PrimeThread extends Thread
{
long minPrime;
public PrimeThread(long minPrime)
{
this.minPrime = minPrime;
}
public static void main(String[] args)
{
PrimeThread p = new PrimeThread(11);
p.start();
}
public void Run()
{
System.out.println("wtf");
}
}
工作
public class PrimeRun implements Runnable
{
long minPrime;
public PrimeRun(long in)
{
minPrime=in;
}
public static void main(String[] args)
{
PrimeRun p = new PrimeRun(143);
new Thread(p).start();
}
@Override
public void run()
{
System.out.println("hello");
}
}
什么是不工作?例外?只是没有运行等 – 2013-03-09 15:19:04
哦不。我刚刚发现了这个问题。 Run()方法应该有小写字母r ... run() :(太令人尴尬了。过去8天,图书馆每天超过11个小时正在赶上我。 – 2013-03-09 15:24:14
这就是@Override注释是什么因为它会告诉你这种错误::-)有一个很好的原因来扩展线程是非常罕见的,它很容易搞砸,所以总的来说最好远离它。 – 2013-03-09 15:29:25