Android学习之旅

Android小知识点每日打卡

2019-04-10  本文已影响0人  TengFeiGo
1、常用的多线程方案有哪些?这些方式有什么区别?什么时候用哪种?

在 Android 中操作线程的方案有 AsyncTask、HandlerThread、IntentService、线程池(ThreadPoolExecutor)

AsyncTask是一种轻量级的异步任务类,在它的底层封装了Handler和线程池,它可以在线程池中执行后台任务,通过 Handler 将执行结果和执行进度传递到UI线程,AsyncTask适用于执行后台任务,以及在主线程中获取执行的结果,但由于Android3.0后AsyncTask是串行的,所以它不适合执行特别耗时的任务。

HandlerThread 继承自 Thread,在它的 run 方法中已经创建开启了消息循环,是一种可以使用 Handler 的 Thread ,具体的实现在 IntentService 中。

IntentService 继承自 Service,IntentService可以用于执行后台耗时任务,并且由于是 Service 的缘故,所以适合执行优先级较高的后台任务。

线程池(ThreadPoolExecutor)ThreadPoolExecutor是线程池的真正实现,通过使用线程池可以避免因线程的创建销毁带来的性能开销,有效控制线程池的最大并发数,并且可以对线程进行简单的管理。

上一篇下一篇

猜你喜欢

热点阅读