* 方式1:是一种继承关系,继承关系具有一定的弊端:局限性,继承当前Thread类重写run方法之后
* 将继承Thread类中的所有功能,不能体系扩展功能
*
* 方式2:
* 1)自定义一个类,实现Runnable接口(里面有一个抽象方法):函数式接口
* 2)重写接口中的run方法,run方法中执行耗时的操作
* 3)在主线程(main)中,创建当前自定义类的对象(资源对象)
* 4)创建Thread类对象,将上面3)资源对象作为参数进行传递
* public Thread(Runnable target):创建线程类对象 不设置名称
* public Thread(ThreadGroup group,Runnable target):创建线程类对象同时设置线程名称
* 5)启动线程start()方法
public class ThreadDemo {
public static void main(String[] args) {
//创建资源类对象
MyRunnable my=new MyRunnable();
//创建线程对象
Thread t1=new Thread(my,"hello");
Thread t2=new Thread(my,"java");
//启动线程
t1.start();
t2.start();
}
}
//自定义类,实现Runnable接口
//资源类
public class MyRunnable implements Runnable {
@Override
public void run() {
for(int x=0;x<300;x++) {
System.out.println(Thread.currentThread().getName()+" "+x);
}
}
}



