1. 程式人生 > >#Java多執行緒學習,那麼如何實現多執行緒呢?

#Java多執行緒學習,那麼如何實現多執行緒呢?

程序和執行緒的區別:

程序:每個程序都有獨立的程式碼和資料空間(程序上下文),程序間的切換會有較大的開銷,一個程序包含1–n個執行緒。 執行緒:同一類執行緒共享程式碼和資料空間,每個執行緒有獨立的執行棧和程式計數器(PC),執行緒切換開銷小。 執行緒和程序一樣分為五個階段:建立、就緒、執行、阻塞、終止。 多程序是指作業系統能同時執行多個任務(程式)。 多執行緒是指在同一程式中有多個順序流在執行。 如果有想要學習java的小夥伴,可來我們的java學習扣裙哦:72340,3928裡面贈送java系列教學視訊和資料!小編也是從事了6年java開發的全棧工程師,歡迎初學者和想要進階的同學進來一起學習。 在這裡插入圖片描述

在java中要想實現多執行緒,有兩種手段,一種是繼承Thread類,另外一種是實現Runable介面:

繼承java.lang.Thread類:

注:Thread類實際上也是實現了Runnable介面的類。

在啟動的多執行緒的時候,需要先通過Thread類的構造方法Thread(Runnable target) 構造出物件,然後呼叫Thread物件的start()方法來執行多執行緒程式碼。

實際上所有的多執行緒程式碼都是通過執行Thread的start()方法來執行的。因此,不管是擴充套件Thread類還是實現Runnable介面來實現多執行緒,最終還是通過Thread的物件的API來控制執行緒的,熟悉Thread類的API是進行多執行緒程式設計的基礎。 在這裡插入圖片描述

Thread和Runnable的區別: 在這裡插入圖片描述 注:這裡要注意每個執行緒都是用同一個例項化物件,如果不是同一個,效果就和上面的Thread一樣了! 實現Runnable介面比繼承Thread類所具有的優勢: 適合多個相同的程式程式碼的執行緒去處理同一個資源. 可以避免java中的單繼承的限制 增加程式的健壯性,程式碼可以被多個執行緒共享,程式碼和資料獨立