【線程的創建和啟動的步驟(實現Runnable接口方式)】
1.定義Runnable接口的實現類,並重寫其中的run方法。run()方法的方法體是線程執行體。
class SonThread implement Runnable{
public void run(){
......
}
}
2.創建Runnable接口實現類的實例。 sonThread s1=new SonThread();
3.用該實例作為Thread的target來創建Thread對象。 Thread t1 =new Thread(s1);
4.調用該對象的start()方法啟動線程。 t1.start();
【示例代碼】
package com.Higgin.part01; //1.1定義Runnable接口的實現類 class SecondThread implements Runnable{ //1.2重寫其中的run方法 @Override public void run() { for(int i=0;i<10;i++){ System.out.println(Thread.currentThread().getName()+"===="+i); } } } public class Demo2 { public static void main(String[] args) { //2.創建Runnable的接口實現類的實例 SecondThread s1=new SecondThread(); SecondThread s2=new SecondThread(); //2.用Runnable的接口實現類的實例作為Thread的target,創建Thread對象 Thread t1=new Thread(s1); Thread t2=new Thread(s2,"Higgin"); //創建Thread對象的同時可以為之命名 //啟動線程 t1.start(); t2.start(); for(int i=0;i<10;i++){ System.out.println(Thread.currentThread().getName()+"===="+i); } } }
【運行結果】

【注意一:關於命名】
在創建Thread 對象的時候可以為該Thread對象指定一個名字

【注意二:Thread的構造方法】
Runnable對象作為Thread對象的target,Runnable實現類里面包含run方法僅僅作為執行體。也就是說Thread類的作用是把run方法包裝成線程的執行體。
實際運行的線程對象依然是Thread實例,只是該Thread線程負責執行其target的run方法。
