设计一个线程操作类,可以产生 3 个线程对象,并分别设置 3 个线程的休眠时间,具体如下所示:
线程 A:休眠 10 秒。
线程 B:休眠20秒。
线程C:休眠 30秒。
一、继承 Thread 类
如果直接继承 Thread 类,则可以直接从 Thread 类中将线程名称的属性及操作方法继承下来,所以,此时只需要直接再设置一个休眠的时间属性即可。
class MyThrea extends Thread{
private int time;//保存线程的休眠时间
public MyThrea(String name,int time){
super(name);//设置线程名称
this.time = time;//设置休眠的时间
}
public void run(){//覆写 run() 方法
try{
Thread.sleep(this.time);
}catch (InterruptedException e){
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()
+ "线程,休眠" + this.time + "毫秒。");//输出信息
}
}
public class Test{
public static void main(String[] args) {
MyThrea mt1 = new MyThrea("线程 A",100);//定义线程对象,指定休眠时间
MyThrea mt2 = new MyThrea("线程 B",200);
MyThrea mt3 = new MyThrea("线程 C",300);
mt1.start();//启动线程
mt2.start();//启动线程
mt3.start();//启动线程
}
}
class MyThread implements Runnable{//实现 Runnable 接口
private String name;
private int time;
public MyThread(String name,int time){
this.name = name;//设置线程名称
this.time = time;//设置休眠的时间
}
public void run(){//覆写 run() 方法
try{
Thread.sleep(this.time);
}catch (InterruptedException e){
e.printStackTrace();
}
System.out.println(this.name + "线程,休眠" + this.time + "毫秒");//输出信息
}
}
public class Root{
public static void main(String[] args) {
MyThrea mt1 = new MyThrea("线程 A",100);//定义线程对象,指定休眠时间
MyThrea mt2 = new MyThrea("线程 B",200);
MyThrea mt3 = new MyThrea("线程 C",300);
new Thread(mt1).start();//启动线程
new Thread(mt2).start();//启动线程
new Thread(mt3).start();//启动线程
}
}