線程的簡單小列子- 龜兔賽跑-繼承Thread類

簡單 小列子 以便理解 start 和 run 方法的區別


第一步定義一個 兔子 類 實現run方法:

package com.java.thread.test;

//實現線程 繼承 thread接口 或者 實現 runnable接口


public class rabbit extends Thread {

@Override
public void run() {
//線程體
for(int i=1;i<11;i++){
System.out.println("兔子跑了"+i+"步");
}
}
}


第二步 同樣定義一個 烏龜 類 實現run方法:

package com.java.thread.test;

public class tortoies extends Thread {

@Override
public void run() {
//線程體
for(int i=1;i<11;i++){
System.out.println("烏龜跑了"+i+"步");
}
}
}


第三步:main方法 :

/**
 * 調用線程
 * @author Administrator
 *如何調用線程: 1 實例對象 2 對象.start方法
 */
public class rabbitApp {

public static void main(String[] args) {
//第一步實例對象
rabbit rb = new rabbit();
tortoies tor = new tortoies();

//第二步 對象.start方法  
rb.start(); //線程啓動方法 不代表線程就運行,此方法 將線程假如線程組,等待我們cpu的調用.
tor.start();

}
}

運行結果:

兔子跑了1步
兔子跑了2步
烏龜跑了1步
兔子跑了3步
烏龜跑了2步
兔子跑了4步
烏龜跑了3步
兔子跑了5步
烏龜跑了4步
兔子跑了6步
烏龜跑了5步
兔子跑了7步
烏龜跑了6步
兔子跑了8步
兔子跑了9步
兔子跑了10步
烏龜跑了7步
烏龜跑了8步
烏龜跑了9步
烏龜跑了10步


如果在main方法裏面 不調用 start 方法  而是run方法,



public static void main(String[] args) {
//第一步實例對象
rabbit rb = new rabbit();
tortoies tor = new tortoies();


rb.run();//這個調用 只是對象內部方法  並不是啓動線程
tor.run();

}

結果:

兔子跑了1步
兔子跑了2步
兔子跑了3步
兔子跑了4步
兔子跑了5步
兔子跑了6步
兔子跑了7步
兔子跑了8步
兔子跑了9步
兔子跑了10步
烏龜跑了1步
烏龜跑了2步
烏龜跑了3步
烏龜跑了4步
烏龜跑了5步
烏龜跑了6步
烏龜跑了7步
烏龜跑了8步
烏龜跑了9步
烏龜跑了10步


因爲run方法只是 對象的一個普通方法,並不會啓用線程, 只有一個main方法 主線程 執行我們的程序,所以就一條線 從上往下執行完畢.



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章