多線程

多線程

進程:是一個正在執行中的程序,每一個進程執行都有一個執行程序。該順序是一個執行路徑,或者叫一個控制單元
線程:就是進程中的一個獨立的控制單元,線程在控制進程的執行,一個進程至少一個線程
Java VM 啓動的時候會有一個進程java.exe,該進程至少有一個線程負責Java程序的執行。而且這個線程運行的代碼存在於main方法中,該線程稱之爲主線程
擴展:其實更細節說明jvm啓動不止一個線程,還有負責垃圾回收機制的線程

創建線程:
第一種方式:繼承Thread類
步驟:
1、定義類繼承Thread
2、複寫Thread類中的run方法
3、調用線程的start方法,該方法有兩個作用:啓動線程,調用run方法

class ThreadTest extends Thread {
	public void run() {
		for (int x = 0; x < 50; x++) {
			System.out.println("test......" + (x + 1));
		}
	}
}

public class ThreadDemo {
	public static void main(String[] args) {
		ThreadTest threadTest = new ThreadTest();
		threadTest.start();
		for (int i = 0; i < 50; i++) {
			System.out.println("Demo>>>>" + (i + 1));
		}
	}
}

第二種方式:實現Runnable接口
步驟:
1、定義類實現Runnable接口
2、覆蓋Runnable接口中的run方法
3、通過Thread類建立線程對象
4、將Runnable接口的子類對象作爲實際參數傳遞給Thread類的構造函數
5、調用Thread類中的start方法開啓線程並調用Runnable接口子類的run方法

class ThreadTest1 implements Runnable {
	public void run() {
		for (int i = 0; i < 50; i++) {
			System.out.println("test...." + (i + 1));
		}
	}
}

public class ThreadDemo1 {
	public static void main(String[] args) {
		ThreadTest1 threadTest = new ThreadTest1();
		Thread thread = new Thread(threadTest);
		thread.start();
		for (int i = 0; i < 50; i++) {
			System.out.println("Demo>>>>>>" + (i + 1));
		}
	}
}

實現方式和繼承方式的區別
實現方式避免了單繼承的侷限性,在定義線程時,建議使用實現方式
繼承Thread:線程代碼存放Thread子類的run方法中
實現Runnable:線程代碼存放在接口的子類的run方法中

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