创建线程的第二种方式: 实现Runnable接口。
覆盖run方法
创建Thread对象,将Ruannable接口的子类对象作为构造方法的参数传入
调用start方法开启线程
package day12;
/*
创建线程的第一种方式:继承Thread类。
创建线程的第二种方式: 实现Runable接口。
1,定义类实现Runnable接口。
2,覆盖接口中的run方法,将线程的任务代码封装到run方法中。
3,通过Thread类创建线程对象,并将Runnable接口的子类对象作为Thread类的构造函数的参数进行传递。
为什么?因为线程的任务都封装在Runnable接口子类对象的run方法中。
所以要在线程对象创建时就必须明确要运行的任务。
4,调用线程对象的start方法开启线程。
*/
class Demo implements Runnable{ //准备扩展Demo类的功能,让其中的内容可以作为线程的任务执行。
//通过接口的形式完成。
@Override
public void run() {
show();
}
public void show() {
for (int x = 0; x <10 ; x++) {
System.out.println("...x="+x+".....name="+Thread.currentThread().getName());
}
}
}
public class ThreadDemo4 {
public static void main(String[] args) {
Demo d = new Demo();
Thread t1 = new Thread(d);
Thread t2 = new Thread();
t1.start();
t2.start();
// Demo d1 = new Demo();
// Demo d2 = new Demo();
// d1.start();
// d2.start();
}
}