传统上,当我需要一个线程池时,我将使用

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(...

我想知道,为了在其中进行正确选择,我应该考虑什么?

最佳答案

HandlerThread比ExecutorService更简单。因此,它将使用更少的资源并更快地工作。因此,如果您有很多小消息,请通过Handler处理它们。

但是执行者不只是一个类。执行者是标准。这是一个具有很多功能的框架,每个Java程序员都可以理解您用执行者编写的代码。许多库都可以与执行者一起工作。它非常灵活,您可以轻松更改执行程序类型或执行程序队列。因此,如果您有一个复杂的处理任务,并且不知道如何使用执行程序来实现它。

关于android - 单线程池-ExecutorService或Handler + HandlerThread,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21156306/

10-09 13:18