Java多線程--線程操作範例
1、實例要求
設計一個線程操作類,要求可以產生三個線程對象,並可以分別設置三個線程的休眠時間:
線程A : 休眠10秒
線程B: 休眠20秒
線程C : 休眠30秒
2、通過繼承Thread類
在Thread類中直接存在了name屬性。
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(Thread.currentThread().getName() + "線程,休眠"
+ this.time + "毫秒。") ;
}
};
public class ExecDemo01{
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() ; // 啟動線程
}
};
3、通過實現Runnable接口
應該添加一個name屬性,以保存線程名稱。
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(this.name + "線程,休眠"
+ this.time + "毫秒。") ;
}
};
public class ExecDemo02{
public static void main(String args[]){
MyThread mt1 = new MyThread("線程A",10000) ; // 定義線程對象,指定休眠時間
MyThread mt2 = new MyThread("線程B",20000) ; // 定義線程對象,指定休眠時間
MyThread mt3 = new MyThread("線程C",30000) ; // 定義線程對象,指定休眠時間
new Thread(mt1).start() ; // 啟動線程
new Thread(mt2).start() ; // 啟動線程
new Thread(mt3).start() ; // 啟動線程
}
};
最後更新:2017-04-03 14:53:38