繼承Thread 類
** 步驟如下 **
1.繼承Thread類
2.重寫(xiě)run方法(任務(wù)代碼執(zhí)行的方法)
3.創(chuàng)建自定義線程類,然后調(diào)用start方法才會(huì)啟動(dòng)線程去調(diào)用run方法
** 代碼如下 **
public class CustomThread extends Thread{
//初始化線程名字的構(gòu)造方法
public CustomThread(String name){
//調(diào)用父類的方法
super(name);
}
@Override
public void run() {
for (int i = 0; i <100 ; i++) {
System.out.println(this.getName()+i);
}
}
public static void main(String[] args) {
CustomThread customThread = new CustomThread("定義線程");
customThread.start();
}
}
實(shí)現(xiàn)Runable類
** 步驟如下 **
1.implement Runable 類
2.重寫(xiě)Run方法 (任務(wù)執(zhí)行的代碼放在run里面)
3.創(chuàng)建自定義的類,然后將定義好的線程類作為參數(shù)傳給 Thread類中
4.調(diào)用線程類的Start方法
注意幾點(diǎn):
疑問(wèn)1:Runable實(shí)現(xiàn)類是線程類嗎? (只有線程的有Start方法)
1.Runable實(shí)現(xiàn)類并不是一個(gè)線程對(duì)象,只不過(guò)實(shí)現(xiàn)了Runable接口的對(duì)象而已
疑問(wèn)2: 為什么要將runable實(shí)現(xiàn)的對(duì)象作為參數(shù)傳遞給Thread對(duì)象:
2.把Runable實(shí)現(xiàn)類的對(duì)象的run方法作為了任務(wù)代碼去執(zhí)行了
** 代碼如下 **
public class RunableThread implements Runnable {
@Override
public void run() {
for (int i = 0; i <100 ; i++) {
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
public static void main(String[] args) {
RunableThread runableThread = new RunableThread();
//將定于的線程類作為參數(shù)傳遞給Thread類的參數(shù)
Thread thread = new Thread(runableThread,"線程A");
thread.start();
for (int i = 0; i < 100 ; i++) {
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
}