這是一份全面詳細的Android多線程學習總結

一、介紹

本文主要對之前寫的多線程相關文章做一個整體的梳理與總結。

本文主要介紹多線程相關,具體如下:

二、多線程基礎知識

2.1、進程與線程

主要介紹進程、線程、以及進程與線程的對比。

詳見《線程與進程對比分析

三、多線程的實現

1、基礎使用

1.1、繼承Thread類和實現Runnable創建子線程

Android多線實現的基礎使用,主要通過繼承Thread類和實現Runnable創建子線程。

詳見《繼承Thread和實現Runnable創建子線程詳細介紹(含使用實例和對比分析)

2、複合使用

Android多線程的複合使用主要包括AsyncTask、IntentService、HandlerThread。

2.1、AsyncTask

AsyncTask是一個Android已經封裝好的異步類,可實現多線程和異步通信。

詳見:《AsyncTask使用詳細介紹(含使用實例)

AsyncTask原理和源碼解析

AsyncTask存在的問題和缺陷

2.2、IntentService

IntentService也是一個封裝好的多線程異步類,其繼承了service。

詳見《IntentService詳細介紹(含使用實例及源碼分析)

2.3、HandlerThread

HandlerThread也是一個封裝好的異步類,內部實現了Handler+Thread。

詳見《HandlerThread原理、使用實例、源碼詳細解析

3、高級使用

3.1、線程池ThreadPool

線程池主要實現線程複用和對線程的管理。

詳見《線程池全面解析

四、線程間通信

4.1、Handler

線程間通信,主要是通過handler實現,通過Handler+Looper+MessageQueue來實現多線間異步通信。

詳見《Handler使用方法詳解(含實例)

Handler原理解析(圖文詳解)

Handler源碼分析

五、線程同步

5.1、Synchronized

多線程提高系統資源效率的同時,帶來了線程安全性問題,主要通過加鎖實現線程安全。

詳見《Synchronized簡單介紹(原理、使用、對比分析)

實現線程同步的所有方法分析

 java產生死鎖的原因以及如何處理死鎖

六、線程局部變量

6.1、ThreadLocal

ThreadLocal是線程本地變量或線程局部變量,爲每個線程提供一個特有的空間,保存線程特有的資源,實現線程隔離,防止數據共享。

詳見《 ThreadLocal解析

七、總結

前前後後用了兩個月的時間,終於把Android多線程相關的知識總結了一遍,說一些個人的感受:

1、通過總結真的學到了很多東西,因爲是總結,所以知識相對比較全面一些,起到了查缺補漏的作用,同時對之前經常用到的知識,加深了理解。

2、很多知識點自己在代碼中也經常使用,但是真的整理起來,確實不容易,耗費了大量的時間和精力,但是很值得 。

3、這段時間工作也不忙,有時間堅持長久的做一件事,有時間就看看相關的書籍,查查相關的資料,在查看別人博客的同時發現了很多牛人,向他們學習。

4、Android多線程專題就寫完了,繼續下一個專題,堅持下去,積跬步,至千里!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章