創建線程方法
阿新 • • 發佈:2018-08-23
class generate err 接口 多態 end nds {} start 運用多態機制 創建Thread的子類對象 thread1 並且覆蓋父類的run方法
Thread thread = new Thread(){}
多態的概念 thread 是 Thrad的一個子類
Thread 在start()後調用run(),該run方法 先判斷是否有Runable 參數 有則 調用 Runable.run() 沒有則往下執行其他代碼
如果是 子類 覆蓋了run() 則不會去找Runable 直接執行子類的run()
此時對象可以直接使用start方法啟動線程
Thread thread = new Thread(){}
多態的概念 thread 是 Thrad的一個子類
Thread 在start()後調用run(),該run方法 先判斷是否有Runable 參數 有則 調用 Runable.run() 沒有則往下執行其他代碼
如果是 子類 覆蓋了run() 則不會去找Runable 直接執行子類的run()
此時對象可以直接使用start方法啟動線程
Thread thread1=new Thread() { public void run() { while(true) { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(this.getName()); } } }; thread1.start();
或
package thread; public class demo_1 { public static void main(String[] args) { cat c=new cat(); c.start(); } } class cat extends Thread{ public void run() { while(true) { try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("11111"); } } }
如果是實現runable接口 則需要把對象傳入Thread 後
對象才可調用run啟動線程
dog d=new dog();
Thread t=new Thread(d);
d.run();
即覆蓋實現了Ruable的類d
等價於Thread t=new Thread(new dog().run());
package thread; public class demo_2 { public static void main(String[] args) { dog d=new dog(); Thread t=new Thread(d); d.run(); } } class dog implements Runnable{ public void run() { while(true) { try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("11111"); } } }
創建線程方法