zoukankan      html  css  js  c++  java
  • Async分析

       1:android在新版本中不允许UI线程访问网络,但是如果需要访问网络又改怎么办呐?这里有很多解决方案,比如新开一个线程,在新线程中进行访问,然后访问数据,返回后可能会更新界面也可能不更新界面,这个就涉及了怎么与UI线程通信的问题。 
           2:在android中UI线程中不能执行耗时太长的任务,否则会引发ANR,又怎么解决这个问题呐,其实也可以新开一个线程进行执行,执行完成后,在返回到UI线程,这也涉及了通信的问题。

           一般的解决方案都是采用Hander来进行线程间的通信,但是今天不谈论Handler,而是谈论在android1.5之后推出AsyncTask,该类可以非常方便的从子线程切换到UI线程。

    async 函数和Generator 函数特别的像,他将 Generator 函数的星号(*)替换成 async,将 yield 替换成 await。但async相比来说,有所改进,

    (1)内置执行器。 Generator 函数的执行必须靠执行器,所以才有了 co 函数库,而 async 函数自带执行器。也就是说,async 函数的执行,与普通函数一模一样,只要一行——var result = asyncReadFile();

    (2)更好的语义。 async 和 await,比起星号和 yield,语义更清楚了。async 表示函数里有异步操作,await 表示紧跟在后面的表达式需要等待结果。

    (3)更广的适用性。 co 函数库约定,yield 命令后面只能是 Thunk 函数或 Promise 对象,而 async 函数的 await 命令后面,可以跟 Promise 对象和原始类型的值(数值、字符串和布尔值,但这时等同于同步操作)。

  • 相关阅读:
    Windows使用SCHTASKS 命令执行定时任务
    window10设置定时任务
    uiautomator2+python自动化测试1-环境准备
    uiautomator2+python自动化测试2-查看app页面元素利器weditor
    APPIUM 自带的webdriveragent
    使用 mitmproxy + python 做拦截代理
    mitmproxy 实战
    深入学习mitmproxy
    将博客搬至CSDN
    CS231N Assignment5 图像分类练习
  • 原文地址:https://www.cnblogs.com/douflamingo-666/p/8647396.html
Copyright © 2011-2022 走看看