传统上,当我需要单个线程池时,我将使用
ExecutorService executorService = Executors.newSingleThreadExecutor();
executorService.submit(...
但是,在查看Weather List Widget时,我意识到我们可以使用Handler
+ HandlerThread
来实现类似的目标
HandlerThread sWorkerThread = new HandlerThread("WeatherWidgetProvider-worker");
sWorkerThread.start();
Handler sWorkerQueue = new Handler(sWorkerThread.getLooper());
sWorkerQueue.post(...
我想知道,我应该考虑什么,为了在他们中间做出正确的选择?
答案 0 :(得分:6)
HandlerThread比ExecutorService简单。因此它将使用更少的资源并更快地工作。所以如果你有很多小消息通过Handler处理它们。
但执行官不仅仅是一个班级。执行者是一个标准。它是一个具有许多功能的框架,每个java程序员都可以理解用执行程序编写的代码。许多库可以与执行程序一起使用。它很灵活,您可以轻松更改执行程序类型或执行程序队列。因此,如果您有一个复杂的处理任务,并且您不知道它是如何使用执行程序完全实现的。