未知標題

Thread簡介

  • Thread上循序執行的一條code path被稱為任務(task)。task是thread執行上的工作單位稱呼。
  • thread一次可以循序執行一個或多個任務。
  • Thread生命週期由task的長度決定。

通常一個Thread的生命週期包含3個階段:開始、執行、結束。Thread在所有task執行完畢後結束,為了確認Thread存活,會在執行階段賦予Thread不同的任務,並在裡面添加退出的條件以確保Tack能夠執行完畢後退出。

在很多時候,Thread不是執行一系列Tack就結束那麼簡單,所以我們增加一個WorkQueue,來放置待處理的Task,讓Thread提取Task進行執行。另外,也可能Thread在執行過程中,需與其他Thread進行協作。若這些Thread細節交給處理,這將是件及其繁瑣又易出錯的事情。

還好,Android提供 實現以上Thread Task 模型,如下:

  • Looper:

    能夠確保Thread持續存活並且可以不斷的從 Message Queue 中獲取任務並進行執行。

  • Handler:

    能夠幫助實現 Message Queue 的管理,不僅僅能夠把任務插入到 Message Queue 的頭部,尾部,還可以按照一定的時間延遲來確保任務從 WorkQueue 中能夠來得及被取消掉。

  • MessageQueue:

    使用Intent,Message,Runnable作為任務的載體在不同的Thread之間進行傳遞。

將以上三個組件模型一起打包進行協作,這就是

HandlerThread

results matching ""

    No results matching ""