Java學習筆記----創建線程、sleep()、

什麼是線程

在討論什麼是線程前有必要先說下什麼是進程,因爲線程是進程中的一個實體,線程本身是不會獨立存在的。進程是代碼在數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,線程則是進程的一個執行路徑,一個進程至少有一個線程,進程中的多個線程是共享進程的資源的。

如何啓動新的進程

①建立Runnable對象(線程的任務)

Runnable threejob = new myRunnable();

②建立Trhead對象(執行人工)並賦值Runnable任務

Thread thread = new Thread(threejob);

③啓動Thread

thread.start();

④實現Runnable接口來建立thread運行的任務,Runnable只有一個方法需要實現,就是run方法,

class myRunnable implements Runnable {
	@Override
	public void run() {
		go();
	}
	public void go() {
		System.out.println("top the stack ");
	}
}

新建線程的幾種狀態

①新建狀態
②可執行狀態:當你啓動線程的時候,他就會變成可執行的狀態,只要輪到他就可以開始,該線程已經佈置好執行空間
③執行中:這靠Java虛擬機的線程調度機制來決定,只能給Java虛擬機的調度給點意見,但無法強迫線程從可執行狀態變成執行中
注意:一旦線程進入可執行狀態,他會在可執行狀態中與執行中狀態來來去去,同時也會有另外一種狀態:暫時不可執行(堵塞狀態)

線程調度器

線程調度器會決定哪個線程從等待狀態中被挑出來運行,以及何時把哪個線程送回等待執行的狀態
看下面例子:

package Java;


class myRunnable implements Runnable {
	@Override
	public void run() {
		go();
	}
	public void go() {
		System.out.println("top the stack ");
	}
}

public class ThreadTester {
	public static void main(String[] agrs) {
		Runnable threejob = new myRunnable();
		Thread thread = new Thread(threejob);	
			thread.start();
			System.out.println("back the main");
	}

}

輸出順序是隨機的
在這裏插入圖片描述
在這裏插入圖片描述

讓進程小睡一會

確保進程能夠有機會的執行的最好方式是讓他們週期性的去睡一下,只要調用sleep()方法,傳入一毫秒指定的時間即可,但是這個方法會拋出異常InterruptedException,

try {
			Thread.sleep(2000);
			
		}catch(InterruptedException ex){
			ex.printStackTrace();
		}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章