java執行緒基礎

2021-06-03 11:39:45 字數 1310 閱讀 4929

1. thread類 實現了runnable介面的類。

在啟動多執行緒的時候 先是通過thread的構造方法thread(runnabletarget)構造出物件,然後在通過thread中的start方法啟動 多執行緒的。

2.執行緒的狀態

new(新建)、runnable(可執行)、running(執行中)、waiting(等待)、timed_waiting(定時等待)、blocked(阻塞)、dead(死亡)

3.多執行緒狀態之間的切換 .

3.1、當執行new thread(runnable r)後,新建立出來的執行緒處於new狀態,這種執行緒不可能執行

3.2、當執行thread.start()後,執行緒處於runnable狀態,這種情況下只要得到cpu,就可以開始執行了。runnable狀態的執行緒,             會接受jvm的排程,進入running狀態,

但          是 具體何時會進入這個狀態,是隨機不可知的.

3.3、如果cpu排程給了別的執行緒,或者執行了thread.yield()方法,則進入runnable狀態,但是也有可能立刻又進入running狀態

3.4、如果執行了thread.sleep(long),或者thread.join(long),或者在鎖物件上呼叫object.wait(long)方法,則會進入                                 timed_waiting狀態

3.5、如果執行了thread.join(),或者在鎖物件上呼叫了object.wait()方法,則會進入waiting狀態

3.6、如果進入了同步方法或者同步**塊,沒有獲取鎖物件的話,則會進入blocked狀態

3.7、處於waiting狀態中的執行緒,如果是因為thread.join()方法進入等待的話,在目標thread執行完畢之後,會回到runnable狀態

3.8、如果是因為object.wait()方法進入等待的話,在鎖物件執行object.notify()或者object.notifyall()之後會回到runnable狀態

3.9、處於timed_waiting狀態中的執行緒,和waiting狀態中的差不多,只不過是設定時間到了,就會回到runnable狀態

3.10、處於blocked狀態中的執行緒,只有獲取了鎖之後,才會脫離阻塞狀態

3.11、當執行緒執行完畢,或者丟擲了未捕獲的異常之後,會進入dead狀態,該執行緒結束

java執行緒基礎

1.執行緒 程式中的不同執行路徑 程序 靜態概念,機器上的乙個class檔案或者乙個exe檔案都可以被稱為乙個程序,本身不能動 同一時間點內乙個cpu只能有乙個執行緒起著 2.新建執行緒時,推薦使用implements runnable,方便拓展,且只需要重寫run方法 3.thread.start...

Java基礎執行緒

class dead implements runnable 實現runnable介面 else class locka class lockb class test2 thread方法常用引數介紹 run負責執行緒中執行的 thread string name 構造的時候,傳遞執行緒名 getna...

java基礎 執行緒

1 什麼是執行緒 public class mainthread public static void m1 public static void m2 public static void m3 這個程式,有幾條執行路徑呢?其實只有一條,就是main主線程 輸出結果 2 多執行緒實現方法之impl...