簡單 小列子 以便理解 start 和 run 方法的區別
第一步定義一個 兔子 類 實現run方法:
package com.java.thread.test;//實現線程 繼承 thread接口 或者 實現 runnable接口
public class rabbit extends Thread {@Overridepublic void run() {//線程體for(int i=1;i<11;i++){System.out.PRintln("兔子跑了"+i+"步");}}}
第二步 同樣定義一個 烏龜 類 實現run方法:
package com.java.thread.test;public class tortoies extends Thread {@Overridepublic 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方法 主線程 執行我們的程序,所以就一條線 從上往下執行完畢.
新聞熱點
疑難解答