2019.08.05 JAVA中的Thread概念(一)

一.線程的狀態
java的線程是通過java.lang.Thread類來實現的。
java的線程通常分爲五個狀態:創建,就緒,運行,阻塞,死亡

  • 創建:生成了線程對象,但是沒有start,此時線程處於創建狀態。想象一下緩存視頻,首先選擇目標視頻。

  • 就緒:調用了線程的start方法,此時線程調度程序還沒有把該線程設置爲當前線程,此時處於就緒狀態。在線程運行之後,從等待或者睡眠中回來之後,也會處於就緒狀態。加入下載列表。

  • 運行:線程調度程序將處於就緒狀態的線程設置爲當前線程,此時線程就進入了運行狀態,開始運行run函數當中的代碼開始下載。

  • 阻塞:線程正在運行的時候被暫停,通常是爲了等待某個時間的發生(比如說某項資源就緒)之後再繼續運行。sleep,suspend,wait等方法都可以導致線程阻塞。暫停一下,先下另一集。

  • 死亡:如果一個線程的run方法執行結束或者調用stop方法後,該線程就會死亡。對於已經死亡的線程,無法再使用start方法令其進入就緒。下載完成。

二.創建並啓動線程
1、寫一個類繼承自Thread類,重寫run方法。用start方法啓動線程
啓動一個線程是調用start()方法,使線程所代表的虛擬處理機處於可運行狀態,這意味着它可以由JVM調度並執行,這並不意味着線程就會立即運行。run()方法是線程啓動後要進行回調(callback)的方法。

public static void main(String[] args) {
	Thread thread1=new thread1();
	thread1.start();
}
public static class thread1 extends Thread{
	@Override
	public void run() {
		// TODO Auto-generated method stub
		System.out.println("運行了thread1");
	}
}

2、寫一個類實現Runnable接口,實現run方法。用new Thread(Runnable target).start()方法來啓動

public static void main(String[] args) {	
	Thread thread2=new Thread(new thread2());
	thread2.start();
}
public static class thread2 implements Runnable{
	@Override
	public void run() {
		// TODO Auto-generated method stub
		System.out.println("運行了thread2");		
	}
}

(實現Callable接口等再議…)

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