相信之前的教程,幫助到很多的新人程式設計師將基礎做了一個詳細的介紹,通過互助的形式,獅子團裡面有好多新手朋友已經開始跟著一些經驗比較豐富的人一起開發專案,作者很是欣慰,互助的目的達到了,作為一名瘋狂痴迷Java的開發者來說,這也是一個非常引人自豪的地方。如果你也是新手,或者瘋狂的熱愛Java,想要跟著經驗豐富的人一起精進,更好的在Java的學習路上成長進步,獅子團歡迎你。
接下來,將為大家介紹一下關於Java基礎知識中非常重要的一個點——執行緒初認識。
什麼是執行緒?
程序是程式在處理機中的一次執行。一個程序既包括其所要執行的指令,也包括了執行指令所需的系統資源,不同程序所佔用的系統資源相對獨立。所以程序是重量級的任務,它們之間的通訊和轉換都需要作業系統付出較大的開銷。
執行緒是程序中的一個實體,是被系統獨立排程和分派的基本單位。執行緒自己基本上不擁有系統資源,但它可以與同屬一個程序的其他執行緒共享程序所擁有的全部資源。所以執行緒是輕量級的任務,它們之間的通訊和轉換隻需要較小的系統開銷。
Java支援多執行緒程式設計,因此用Java編寫的應用程式可以同時執行多個任務。Java的多執行緒機制使用起來非常方便,使用者只需關注程式細節的實現,而不用擔心後臺的多工系統。
Java語言裡,執行緒表現為執行緒類。Thread執行緒類封裝了所有需要的執行緒操作控制。在設計程式時,必須很清晰地區分開執行緒物件和執行執行緒,可以將執行緒物件看作是執行執行緒的控制面板。線上程物件裡有很多方法來控制一個執行緒是否執行,睡眠,掛起或停止。執行緒類是控制執行緒行為的唯一的手段。
為什麼要多執行緒?
1.執行緒協作提高效率:例如:經典的印表機例子、多執行緒下載等
2.提供某種額外的相關服務:好比手機廠商提供周邊產品生產,廠商不可能他能停下當前手機的生產而專注周邊生產,所以會新產生一個部門去做周邊裝置。
3.效能的提高:記憶體共享
建立執行緒的2種方法
1.寫一個類(繼承Thread 並重寫run方法),例項化這個類,並呼叫start()方法。
2.實現了Runnable介面 並實現其中的run方法,這個類 可以當作是Thread類的target。
兩種方式的對比
實現Runnable介面的同時還可以繼承其他的類,但是繼承Thread之後就不可以再繼承了。
target的方式更加靈活,結構更加清晰。
帶返回值的執行緒 見ThreadCallable類
Callable 實現方式 和Runnable類似,只不過它具有返回值的功能。
使用匿名內部類來快速定義一個執行緒
優點:快速,簡單,直觀缺點:複用性差,執行體(run方法)程式碼過長會影響程式碼可讀性。
關於執行緒的例子:(1)開啟方式一
(2)開啟方式二
一個繼承了Thread,並重寫了run方法的類
一個實現了Runnable介面 並實現其中的run方法
一個實現了Callable介面的執行緒target,它可以返回值