2011-12-09 13 views
9

Herkesin neden bir LoopableQueue'dan görevler çeken normal bir iş parçacığı yapmak yerine bir "iş parçacığı dizisi" oluşturmak için Android Looper özelliğini kullanması gerektiğini açıklayabilir mi? Yüzeyde, aynı şeyi yapmanın iki yolu gibi görünüyor.Android Looper vs BlockingQueue?

cevap

4

BlockingQueue, birden çok tüketici ve üreticiye sahip olmanıza izin verirken, Looper mekanizması, birden fazla üreticiye sahip olmanıza izin verirken yalnızca bir tüketiciye sahip olmanızı sağlar.

Looper iş parçacığında, her seferinde yalnızca bir görev (runnable) yürütürsünüz. Kolayca ertelenmiş için

Looper/Handler da işlevsellik sağlamak (tek bir iş parçacığı bu yüzden tek bir iş parçacığı tüketici olarak düşünmek olarak çalışır) UI iş parçacığı üzerinde runnables (mesajlar gibi kapsüllü görevleri) idam böylece kıskaçlı kepçe mekanizması oluşturuldu BlockingQueue kutusunun çıktığı görevlerin yerine getirilmemesi. Yine bu UI araç takımları bağlamında önemlidir.

İlgili konular