Java基礎——多線程
阿新 • • 發佈:2017-11-10
wid 重新 width thread 傳遞 brush 通過 並且 不用
package test; //創建線程的第一種方式:繼承java.lang.Thread類 //1.創建一個繼承Thread的子類 class SubThread extends Thread { //2.重寫run()方法,方法內實現此子線程要完成的任務 public void run() { for(int i = 0; i < 100; ++i) { System.out.println(Thread.currentThread().getName() + ": " + i); } } } public class TestThread { public static void main(String[] args) { //3.創建一個子類的對象 SubThread st = new SubThread(); //4.調用線程的start()方法:啟動此線程;並且調用相應的run()方法 //一個線程只能執行一次start(); //不能通過直接調用Thread實現類對象的run()方法去啟動一個線程 st.run();//錯誤的,相當於主線程內啟動的 st.start(); for(int i = 0; i < 100; ++i) { System.out.println(Thread.currentThread().getName() + ": " + i); } } }
package test; //1.創建一個實現了Runnable接口的類 class SubThread1 implements Runnable{ //2.實現接口的抽象方法 public void run() { //子線程執行的代碼 for(int i = 0; i < 50; ++i) { System.out.println(Thread.currentThread().getName() + ": " + i); } } } public class TestThread1 { public static void main(String[] args) { //3.創建一個Runnable接口實現類的對象 SubThread1 p = new SubThread1(); //要想啟動多線程,必須調用start() //4.將此方法作為形參傳遞給Thread類的構造器中,創建Thread類的對象,此對象即為一個線程 Thread t1 = new Thread(p); //5.調用start()方法,啟動線程並執行run() t1.start(); //再創建一個線程 Thread t2 = new Thread(p); //不用再重新創建p,直接傳入Thread即可 t2.start(); } }
Java基礎——多線程