第一種方式:創建Thread子類
實現步驟:
1.創建一個Thread類的子類
2.在Thread類的子類中重寫Thread類中的run方法,設置線程任務
3.創建Thread類的子類對象
4.調用Thread類中的方法start方法,開啓新的線程,執行run方法
創建一個Thread類的子類SonThread類
public class SonThread extends Thread{
//在Thread類的子類中重寫Thread類中的run方法,設置線程任務
public void run(){
for (int i = 0; i < 20; i++ ){
System.out.println("run:"+ i);
}
}
}
定義測試類
public class TestThread {
public static void main(String[] args) {
//創建Thread類的子類對象
SonThread st = new SonThread();
//調用Thread類中的方法start方法,開啓新的線程,執行run方法
st.start();
for (int i = 0; i < 20; i++) {
System.out.println("main:"+i);
}
}
}
運行結果
父線程和子線程同時運行
第二種方式:實現Runnable接口
實現步驟:
1.創建一個Runnable接口的實現類
2.在實現類中重寫Runnable接口的run方法,設置線程任務
3.創建一個Runnable接口的實現類對象
4.創建Thread類對象,構造方法中傳遞Runnable接口的實現類對象
5.調用Thread類中的start方法,開啓新的線程執行run方法
創建一個Runnable接口的實現類
public class RunnableImpl implements Runnable{
//在實現類中重寫Runnable接口的run方法,設置線程任務
public void run() {
for (int i = 0; i < 20 ;i++) {
System.out.println(Thread.currentThread().getName()+"-->"+i);
}
}
}
創建TestRunnable類
public class TestRunnable {
public static void main(String[] args) {
//創建一個Runnable接口的實現類對象
RunnableImpl run = new RunnableImpl();
//創建Thread類對象,構造方法中出傳遞Runnable接口的實現類對象
Thread t = new Thread(run);
//調用Thread類中的start方法,開啓新的線程執行run方法
t.start();
for (int i = 0; i < 20 ;i++) {
System.out.println(Thread.currentThread().getName()+"-->"+i);
}
}
}
結果