zoukankan      html  css  js  c++  java
  • 49.Android中线程同步异步方式小结

    同步和异步的区别

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

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

    Android 中同步的实现方式

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

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

    3. CountDownLatch (闭锁)

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

    5. 。。。

    Android 中异步的实现方式

    1. Handler
    2. 接口回调
    3. EventBus 等事件分发
  • 相关阅读:
    创建支持SSH服务的镜像
    docker网络基础配置
    docker数据管理
    ELK安装笔记
    OpenVAS虚拟机安装
    nslookup命令
    docker仓库操作
    Percona Monitoring and Management (PMM)安装使用
    zabbix2.4.5安装zatree插件
    docker容器操作
  • 原文地址:https://www.cnblogs.com/benchao/p/5367210.html
Copyright © 2011-2022 走看看