如果不需要修改除了run方法之外的其他方法的话,那么最好去实现Runnable接口
1、如果当前类已经继承了一个类,由于java当中单继承的限制,那么最好实现Runnable接口
2、可以很好的使用全局变量:
class MyThread implements Runnable
MyThread mt = new MyThread();
new Thread(mt).start();
new Thread(mt).start();
new Thread(mt).start();
由于是同一个mt对象,所以可以很方便的操作同一个对象变量
针对第二条采用继承Thread也是可以实现,变通一下如下:
class MyThread //implements Runnable//extends Thread
{
int index=0;
private class InnerThread extends Thread
{
public void run()
{
while(true)
{
System.out.println(Thread.currentThread().getName()+":"+index++);
}
}
}
Thread getThread()
{
return new InnerThread();
}
}
外部调用:
MyThread mt=new MyThread();
mt.getThread().start();
mt.getThread().start();
mt.getThread().start();
mt.getThread().start();
总结:
在不需要对Thread类的方法进行修改的前提下,还是实现Runnable接口的好