线程实例化有两种方式,一种是继承Thread类,一种是实现Runnable接口。
    想启动线程只能通过Thread类的Start方法才能启动线程,启动Start方法只使线程进入就绪状态,并不能进入运行状态,真正要进入运行状态是需要Java虚拟机调用run()方法才能进入运行状态(何时运行不受人为控制,要根据CPU当时的状态决定)。
    自定义的线程类要想实现自己的逻辑处理,要将代码写入run()方法里,实现方法重写,遮阳就能实现自己想要的功能。

    我想显示三个不同的线程的名字和休息时间(时间分别是100,200,300)。
    下面附实例化线程的两种方式:
     实现Runnable接口的方式:
class MyThread implements Runnable{

    
private String name;
    
private int time;
    
public MyThread(String name,int time){
        
this.name = name;
        
this.time =time;
    }

    
public void run() {

        
try {
            Thread.sleep(
this.time);
        }
 catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println(
"name="+this.name+"    休息时间"+this.time);
    }

    
}

public class Test1 {

    
public static void main(String[] args) {
        Runnable mt1 
= new MyThread("1线程",100);
        Runnable mt2 
= new MyThread("2线程",200);
        Runnable mt3 
= new MyThread("3线程",300);
        
new Thread(mt1).start();
        
new Thread(mt2).start();
        
new Thread(mt3).start();
        
    }


}



    继承Thread类的方式:
class MyThread extends Thread{

    
private int time;
    
public MyThread(String name,int time){
        
super(name);
        
this.time = time;
    }

    
public void run() {
        
try {
            Thread.sleep(
this.time);
        }
 catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println(
"name="+this.getName()+"    休息时间"+this.time);
    }

    
}

public class Test {

    
public static void main(String[] args) {

        MyThread t1 
= new MyThread("1线程",100);
        MyThread t2 
= new MyThread("2线程",200);
        MyThread t3 
= new MyThread("3线程",300);
        t2.start();
        t3.start();
        t1.start();
    }

}



运行结果是: