直接new明显是一个简单快捷的办法,但有时候我们为了传入某种参数或是为了约束对象类型往往会在new ***()中加入我们的参数或类型名称,这些也是应当掌握的,在稍后面的代码中会有关于这一现象的描述。
除了使用直接继承Thread类以外,我们还可以定义MyRunnable类实现Runnable接口,然后完成以下四步操作即可
- 实现run()方法;
- 编写线程执行体;
- 创建线程对象;
- 调用start()方法启动线程。
public class RunnableDemo implements Runnable {
@Override
public void run() {
for(int i=0;i<=100;i++){
System.out.println(Thread.currentThread().getName()+"-->"+i);
}
}
public static void main(String[] args) {
RunnableDemo rd1=new RunnableDemo();
Thread t1=new Thread(rd1);
t1.start();
RunnableDemo rd2=new RunnableDemo();
Thread t2=new Thread(rd2);
t2.start();
}
}
看起来是不是比Thread类更复杂一点呢,其实也就是在new完RunnableDemo之后还要将这一新建对象放进Thread方法中。
那么,这两者的区别又是什么呢?