线程的休眠
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) {
// TODO Auto-generated catch block
e.printStackTrace(); //如果出现异常,则打印出来。
}
System.out.println(Thread.currentThread()//得到当前正在被执行的线程的引用
.getName()+"休眠时间"+this.time+"毫秒");
}
}
public class ExceDemo01 {
public static void main(String[] args) {
MyThread mt1 = new MyThread("线程A", 10000);
MyThread mt2 = new MyThread("线程B", 20000);
MyThread mt3 = new MyThread("线程C", 30000);
mt1.start();
mt2.start();
mt3.start();
}
}
Runnable接口的实现
class TheThread implements Runnable{
private int time;
private String name;
public TheThread (String name,int time){ //设置线程的名称和休眠时间;
this.name = name; //得到线程的名称
this.time = time; //得到线程的休眠时间
}
public void run(){
try {
Thread.sleep(this.time);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace(); //如果出现异常,则打印出来。
}
System.out.println(this.name+"休眠时间"+this.time+"毫秒");
}
}
public class ExceDemo02 {
public static void main(String[] args) {
TheThread mt1 = new TheThread("线程A", 10000);
TheThread mt2 = new TheThread("线程B", 20000);
TheThread mt3 = new TheThread("线程C", 30000);
new Thread(mt1).start();
new Thread(mt2).start();
new Thread(mt3).start();
}
}
两种方法的说明:
多线程主要是用Thread类和Runnable接口来实现
Thread类中对于线程的名称可以使用super(name)来得到;
在打印输出的时候可以使用Thread.currentThread.getname()的方法来得到线程的名称;
currentThread返回的是当前正在执行线程的引用
线程可以直接使用类名.start方法直接运行
Runnable中不存在super,所以线程的名称只能用this.name=name来实现
线程的启动也不能使用start的方法,用new Thread(类名)的方法来启动