1. 程式人生 > >Java多執行緒筆記分享

Java多執行緒筆記分享

1.多執行緒的結構 在這裡插入圖片描述

2.執行緒和程序 執行緒和程序是不一樣的 程序>執行緒 執行緒是最小的一個單位 3.多執行緒的實現 1.繼承Thread類(就是java.lang.Thread) java.lang.Thread是一個執行緒操作的核心類。如果想要定義一個執行緒的主類,最簡單的方法就是繼承Thread類,然後覆寫這個類中的run()方法 正確啟動多執行緒:public void start() .呼叫此方法就會呼叫run() 疑問:為什麼要通過start()方法來呼叫run()方法?而不是run()直接執行 可以發現,在start()方法中呼叫了一次start0()方法,而這個方法是一個只宣告未實現的方法,同時使用了native關鍵字進行了定義,native表示的是呼叫本機的原生系統函式 範例:

在這裡插入圖片描述 2.實現Runnable介面或者Callable介面 【推薦】(避免單繼承侷限) 同樣多執行緒的主類來實現Runnable介面,Runnable介面中也含有一個Run()方法,所以可以通過實現介面的類來Override一下,但是呢,這個Runnable介面沒有Start()方法。所以無法直接啟動執行緒 但是呢,Thread類中有一個可以接受Runnable介面物件的構造方法,所以可以通過建立Thread的匿名物件類使用start()方法,從而實現執行緒的啟動 範例: 在這裡插入圖片描述 多執行緒的同時實現 資料共享

兩種方法的區別:第一:Runnable可以避免單繼承的狀況 第二:在資料共享的時候,使用Runnable會更好(更直觀)。 關於執行緒共享資源,可以通過下面的範例來看,請忽略有些annotation不是很標準 範例: 在這裡插入圖片描述