49.Android中线程同步异步方式小结

本文通过获取网络图片的示例,详细对比了同步与异步处理的区别。在同步操作中,主线程会等待子线程完成任务;而在异步操作中,主线程则可以继续执行其他任务。此外,还列举了Android平台下同步与异步的多种实现方式。

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

同步和异步的区别

首先以一个常见的开发场景来区别一下同步和异步的区别,比如我们要获取一张网络图片并完成显示。在这个场景中我们需要开启两个线程,一个是子线程—即下载图片的线程;另外是主 UI 线程—即图片下载完成后进行显示的线程。针对这个场景分别用两幅实现的流程图来区分同步和异步。

从图中可以看到,二者的区别在于:同步时当前主线程会阻塞,直到子线程通知主线程为止(先不考虑ANR);而异步的时候主线程可以继续干其它的事情,当子线程完成任务的时候通知一下主线程就可以了,类似于接口回调或消息队列的思想。所以很关键的一点,在于它们是否会阻塞。

Android 中同步的实现方式

  1. synchronized、wait/notify 等(Java 中的基础知识,不做过多说明了)

  2. Semaphore (信号量,操作系统中非常重要的概念)

  3. CountDownLatch (闭锁)

  4. CyclicBarrier (一个同步辅助类)

  5. 。。。

Android 中异步的实现方式

  1. Handler
  2. 接口回调
  3. EventBus 等事件分发

转载于:https://www.cnblogs.com/benchao/p/5367210.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值