android looper和执行程序线程池之间的区别

user3430459:

我在阅读关于循环程序的内容,以及关于执行程序线程池的内容,它们似乎在做完全相同的事情……还是我缺少了什么?

特雷弗-

A Looper管理线程将运行的任务。它将它们放入队列,然后线程接受下一个任务。Looper绑定到特定线程。

一个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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android-线程和AsyncTask之间的区别?

(在驱动程序上)线程池和执行程序核心之间是什么关系?

Java线程池执行程序监视

Java执行程序服务线程池

Java线程池大小(执行程序)

线程和线程池之间的区别

活动处理程序和视图处理程序android之间的区别

在线程池执行程序的线程上设置超时

解释Akka线程池执行程序配置参数

正常关闭线程和执行程序

android:id和android:labelFor之间的区别?

android:windowBackground和android:colorBackground之间的区别?

Android使用多个线程池执行器

android中asynctask和线程之间的主要区别是什么?

C在编译和执行程序之间有区别吗?

在执行程序中运行和定义异步方法之间的龙卷风区别

Android线程错误-无法在未调用Looper.prepare()的线程内创建处理程序

android - android:name 和 android:label 之间的区别

为同时发起出站调用的请求设置HTTP连接池和线程执行程序池是否有意义?

Android:DataBinding和ViewBinding之间的区别

android gradle插件和gradle之间的区别

Android“ setSelected()”和“ setChecked()”之间的区别

匕首和ButterKnife Android之间的区别

Android中“ @ id /”和“ @ + id /”之间的区别

Android:traceview和systrace工具之间的区别

Android地图:OnMapReady()和OnMapLoaded()之间的区别

Android onHandleIntent和onStartCommand之间的区别

Android中ArrayAdapter和ListAdapter之间的区别?

Android中FutureTask和AsyncTask之间的区别