Thread,Handler,HandlerThread区别

本文介绍了Android中线程的使用,包括Thread、Handler和HandlerThread的基本概念及应用场景。详细解释了HandlerThread如何减轻主线程压力,确保UI流畅,并指出其在网络IO操作上的局限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Thread,Handler,HandlerThread

Thread

在Java中常用的线程类,在Android中我们一般会创建子线程以完成耗时任务,以避免主线程阻塞(ANR)。

使用

只需要继承Thread类,然后重写run方法即可。

Handler

Handler体系中的核心类,用于实现处理Message的逻辑

HandlerThread

本质上是一个包含了Looper的的Thread

作用

当位于非UI线程我们需要使用Handler体系时,需要自己手动创建一个Looper,并且进行prepare和`start,如果我们使用HandlerThread,在这其中已经帮我们完成以上操作,应该说方便了一点。

特点

  • HandlerThread将loop转到子线程中处理,说白了就是将分担MainLooper的工作量,降低了主线程的压力,使主界面更流畅。

  • 开启一个线程起到多个线程的作用。处理任务是串行执行,按消息发送顺序进行处理。HandlerThread本质是一个线程,在线程内部,代码是串行处理的。

  • 但是由于每一个任务都将以队列的方式逐个被执行到,一旦队列中有某个任务执行时间过长,那么就会导致后续的任务都会被延迟处理。

  • HandlerThread拥有自己的消息队列,它不会干扰或阻塞UI线程。

  • 对于网络IO操作,HandlerThread并不适合,因为它只有一个线程,还得排队一个一个等着。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值