一、介紹
本文主要對之前寫的多線程相關文章做一個整體的梳理與總結。
本文主要介紹多線程相關,具體如下:
二、多線程基礎知識
2.1、進程與線程
主要介紹進程、線程、以及進程與線程的對比。
詳見《線程與進程對比分析》
三、多線程的實現
1、基礎使用
1.1、繼承Thread類和實現Runnable創建子線程
Android多線實現的基礎使用,主要通過繼承Thread類和實現Runnable創建子線程。
詳見《繼承Thread和實現Runnable創建子線程詳細介紹(含使用實例和對比分析)》
2、複合使用
Android多線程的複合使用主要包括AsyncTask、IntentService、HandlerThread。
2.1、AsyncTask
AsyncTask是一個Android已經封裝好的異步類,可實現多線程和異步通信。
2.2、IntentService
IntentService也是一個封裝好的多線程異步類,其繼承了service。
詳見《IntentService詳細介紹(含使用實例及源碼分析)》
2.3、HandlerThread
HandlerThread也是一個封裝好的異步類,內部實現了Handler+Thread。
詳見《HandlerThread原理、使用實例、源碼詳細解析》
3、高級使用
3.1、線程池ThreadPool
線程池主要實現線程複用和對線程的管理。
詳見《線程池全面解析》
四、線程間通信
4.1、Handler
線程間通信,主要是通過handler實現,通過Handler+Looper+MessageQueue來實現多線間異步通信。
五、線程同步
5.1、Synchronized
多線程提高系統資源效率的同時,帶來了線程安全性問題,主要通過加鎖實現線程安全。
詳見《Synchronized簡單介紹(原理、使用、對比分析)》
六、線程局部變量
6.1、ThreadLocal
ThreadLocal是線程本地變量或線程局部變量,爲每個線程提供一個特有的空間,保存線程特有的資源,實現線程隔離,防止數據共享。
詳見《 ThreadLocal解析》
七、總結
前前後後用了兩個月的時間,終於把Android多線程相關的知識總結了一遍,說一些個人的感受:
1、通過總結真的學到了很多東西,因爲是總結,所以知識相對比較全面一些,起到了查缺補漏的作用,同時對之前經常用到的知識,加深了理解。
2、很多知識點自己在代碼中也經常使用,但是真的整理起來,確實不容易,耗費了大量的時間和精力,但是很值得 。
3、這段時間工作也不忙,有時間堅持長久的做一件事,有時間就看看相關的書籍,查查相關的資料,在查看別人博客的同時發現了很多牛人,向他們學習。
4、Android多線程專題就寫完了,繼續下一個專題,堅持下去,積跬步,至千里!