一、同步和异步的区别
首先以一个常见的开发场景来区别一下同步和异步的区别,比如我们要获取一张网络图片并完成显示。在这个场景中我们需要开启两个线程,一个是子线程—即下载图片的线程;另外是主 UI 线程—即图片下载完成后进行显示的线程。针对这个场景分别用两幅实现的流程图来区分同步和异步。
从图中可以看到,二者的区别在于:同步时当前主线程会阻塞,直到子线程通知主线程为止(先不考虑ANR);而异步的时候主线程可以继续干其它的事情,当子线程完成任务的时候通知一下主线程就可以了,类似于接口回调或消息队列的思想。所以很关键的一点,在于它们是否会阻塞。
二、Android 中同步的实现方式
synchronized、wait/notify
Java同步机制简介
本文总结了Android中线程同步和异步的区别,包括同步时主线程的阻塞和异步时的非阻塞特性。同步实现方式涉及synchronized关键字的使用,如同步代码块和同步方法,并通过卖火车票案例说明。异步实现方式探讨了Handler机制以及接口回调和EventBus等事件分发方法。
订阅专栏 解锁全文
1257

被折叠的 条评论
为什么被折叠?



