gpt4 book ai didi

java - android looper和executor线程池的区别

转载 作者:搜寻专家 更新时间:2023-10-30 21:22:55 25 4
gpt4 key购买 nike

我正在阅读 about loopers ,还有 Executor Thread Pools他们似乎在做完全相同的事情……还是我遗漏了什么?

最佳答案

Looper 管理线程将运行的任务。它把它们放在一个队列中,然后线程接管下一个任务。 Looper 绑定(bind)到特定线程。

Executor 封装了对不同线程的管理和分发任务。如果您的线程池大小固定为 1,那么我认为它在设计上与 Looper 类似,因为它只会排队等待那个线程的工作。如果您有一个大小 > 1 的线程池,那么它将设法将任务交给下一个可用的线程来完成工作,或者换句话说,它将在所有线程之间分配任务。

编辑:推荐阅读:http://developer.android.com/reference/java/util/concurrent/package-summary.html

执行者更加灵活。对于 Android,我唯一一次真正使用 Looper 是在尝试让 Handler 从后台线程(甚至可以在 ExecutorService 中)与主线程通信时。例如:

Handler mainThreadHandler = new Handler(Looper.getMainLooper());
mainThreadHandler.post(new Runnable...); //runs on main thread

关于java - android looper和executor线程池的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23114656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com