java基礎:執行緒

十五樓亮哥發表於2015-02-02

1:什麼是執行緒

public class MainThread {
	public static void main(String[] args) {
		System.out.print("main--->");
		m1();
		System.out.print("main");
	}

	public static void m1() {
		System.out.print("m1--->");
		m2();
		m3();
	}

	public static void m2() {
		System.out.print("m2--->");
	}

	public static void m3() {
		System.out.print("m3--->");
	}
}

這個程式,有幾條執行路徑呢?其實只有一條,就是main主執行緒

輸出結果:

main--->m1--->m2--->m3--->main




2:多執行緒實現方法之implement Runnable介面

public class Runner1 implements Runnable {

	@Override
	public void run() {
		
		for(int i = 0; i < 100 ;i++){
			System.out.println("Runner1----"+i);
		}

	}
}


public class TestThread1 {
	public static void main(String[] args) {
		Runner1 r = new Runner1();
		//r.run(); 方法呼叫
		Thread t = new Thread(r);
		t.start(); //執行緒啟動
		for (int i = 0; i <= 100; i++) {
			System.out.println("main-------" + i);
		}
	}

}

輸出結果:

main-------0
Runner1----0
main-------1
Runner1----1
main-------2
main-------3
Runner1----2
main-------4
Runner1----3
main-------5
Runner1----4
main-------6
Runner1----5
main-------7
Runner1----6
main-------8
Runner1----7
main-------9
Runner1----8
main-------10
Runner1----9


看以看出有兩條執行路徑,兩個執行緒,一個是main主執行緒,一個是Runner1執行緒。


3:執行緒建立方法之:extends Thread類

public class Runner2 extends  Thread {

	@Override
	public void run() {
		
		for(int i = 0; i < 10 ;i++){
			System.out.println("Runner1----"+i);
		}

	}
}

public class TestThread2 {
	public static void main(String[] args) {
		Runner2 r = new Runner2();
		r.start(); //執行緒啟動
		for (int i = 0; i <= 10; i++) {
			System.out.println("main-------" + i);
		}
	}

}

輸出結果同上!


注意:既然執行緒建立有兩種方式,那麼我們採用哪一種呢?原則上最好採用implement Runnable介面
因為使用介面方式,更加靈活,不僅可以繼承,還可以implement其他介面。


相關文章