2011-12-09 75 views
9

任何人都可以解釋爲什麼有人應該使用Android Looper功能來創建一個「管道線程」,而不是製作一個普通線程來從BlockingQueue中提取任務嗎?從表面上看,似乎有兩種方法可以做同樣的事情。Android Looper vs BlockingQueue?

回答

4

BlockingQueue可讓您擁有多個消費者和生產者,而Looper機制讓您擁有多個生產者,但只有一個消費者。

因此,在Looper線程中,您一次只能執行一個任務(可運行)。創建循環機制,以便您可以在UI線程上輕鬆執行可運行的任務(作爲消息封裝的任務)(作爲單線程運行,因此將其視爲單線程使用者)

Looper/Handler還提供了延遲BlockingQueue開箱的任務沒有執行。在UI工具箱的情況下,這一點也很重要。