49.Android中线程同步异步方式小结
2016-04-08 11:11
337 查看
同步和异步的区别
首先以一个常见的开发场景来区别一下同步和异步的区别,比如我们要获取一张网络图片并完成显示。在这个场景中我们需要开启两个线程,一个是子线程—即下载图片的线程;另外是主 UI 线程—即图片下载完成后进行显示的线程。针对这个场景分别用两幅实现的流程图来区分同步和异步。从图中可以看到,二者的区别在于:同步时当前主线程会阻塞,直到子线程通知主线程为止(先不考虑ANR);而异步的时候主线程可以继续干其它的事情,当子线程完成任务的时候通知一下主线程就可以了,类似于接口回调或消息队列的思想。
所以很关键的一点,在于它们是否会阻塞。
Android 中同步的实现方式
synchronized、wait/notify 等(Java 中的基础知识,不做过多说明了)Semaphore (信号量,操作系统中非常重要的概念)
CountDownLatch (闭锁)
CyclicBarrier (一个同步辅助类)
。。。
Android 中异步的实现方式
Handler接口回调
EventBus 等事件分发
相关文章推荐
- Android Studio
- Android studio 如何打包项目,与版本升级
- android 之listview(一)
- Android 手机获取当前IP
- Android布局优化总结
- Android基础空间spinner
- Android权限问题
- android:ToolBar详解
- Android WindowManager$BadTokenException异常
- 关于android sdk manager在下载包时提示android intel x86 atom system image...的解决方法
- android studio插件之layout文件夹分级
- android 性能优化典范
- Android手势源码浅析-----手势的保存和加载(GestureLibrary)
- android AsyncTask介绍
- Android -- Looper.prepare()和Looper.loop() —深入版
- Android 程序框架设计
- android学习-----自定义View 加载动画
- Android日历选择控件DatePickerDialog只显示年月
- TextView 实现跑马灯效果
- Android 跨进程通信之:AIDL