HandlerThread執行緒管理

2021-07-09 02:55:08 字數 746 閱讀 4784

使用過程:

1。新建乙個handlerthread物件:

myhandlerthread mhandlerthread = new myhandlerthread("testtraffichandlerthread");
2。 使用post方法將runnable物件加入這個執行緒的佇列

mhandlerthread.post(mstatstraffictestrunnable);
3。注意runnable物件並不是乙個執行緒,而是用於安排在特定執行緒執行的工作單元,用mhandlerthread.post方法,可指定這個這個runnable物件的執行執行緒

5。 乙個thread對應乙個looper,乙個looper對應乙個訊息/runnable佇列,乙個thread可定義多個handler

6。乙個典型的handlerthread的定義如下:

public

class

myhandlerthread

extends

handlerthread

@override

protected

void

onlooperprepared()

mrunnables.clear();}}

}public

void

post(runnable task) else }}

}

多執行緒 handlerthread

當我們需要工作執行緒來操作的時候,很多時候會有同步問題,ui更新問題。handle機制就是為了解決這個問題而產生的。android允許每個執行緒都有自己的訊息佇列,同時也可以是主線程訊息佇列。但是很多時候,我們希望可以快速的建立乙個支援自己訊息佇列的android執行緒,這個時候handlerthr...

HandlerThread 學習筆記

1.handler handler會關聯乙個單獨的執行緒和訊息佇列。handler預設關聯主線程,雖然要提供runnable引數 但預設是直接呼叫runnable中的run 方法。也就是預設下會在主線程執行,如果在這裡面的操作會有阻塞,介面也會卡住。如果要在其他執行緒執行,可以使用handlerth...

你擔心handlerThread的效率問題嗎?

handlerthread handler looper messagequeue相互關聯對應 queue是通過msg.next指向下乙個msg來實現,mmessages代表當前的message,每取出乙個msg,移動一次mmessages,一直到最後乙個msg handlerthread是乙個執行...