• 【转】Android的线程和线程池(AsyncTask)


    线程只要分为:主线程和子线程主线程主要处理和界面相关的事情,而子线程则往往用于执行耗时的操作,由于Android的特性,如果在主线程中执行耗时操作那么就会导致程序无法及时响应,因此耗时操作必须方法子线程中去执行.
    AsyncTask
    AsyncTask是一种轻量级的异步任务类,它可以在线程池中执行后台任务,然后把执行的进度和最终结果传递到主线程并在主线程中更新UI.从实现上来说,AsyncTask封装了Thread和Handler,通过AsyncTask可以更加方便地执行后台任务以及在主线程中访问UI,但是AsyncTask并不适合执行特别耗时的后台任务。AsyncTask是一个抽象的泛型类,所以如果我们想要使用它,就必须创建一个子类去继承它,在继承时我们可以为AsyncTask类指定三个泛型类。

    Params在执行AsyncTask时需要传入的参数,可用于在后台任务中使用。
    Progress后台任务执行时,如果需要在界面上显示当前的进度,则使用这里指定的泛型作为进度单位
    Result当任务执行完毕后,如果需要对结果进行返回,则使用这里指定的泛型作为返回值类型。一个简单的自定义AsyncTask可以写成如下:

    AsyncTask的工作原理
    为了分析AsyncTask的工作原理,我们从他的execute方法开始分析,execute()方法会调用executeOnExecutor方法


    从上面的代码中,sDefaultExecutor实际上是一个串行的线程池,一个进程中所有的AsyncTask全部在这个串行的线程中排队执行,这个排队执行的过程后面再进行分析。在executeOnExecutor方法中,AsyncTask的onpreExecute方法最先执行,然后线程池开始执行。

    原文链接:http://www.jianshu.com/p/685f584db344

  • 相关阅读:
    消除左递归
    DFA最小化
    非确定的自动机NFA确定化为DFA
    正规式到正规文法与自动机
    正规文法与正规式
    词法分析程序的设计与实现
    4.文法和语言总结与梳理
    语法树,短语,直接短语,句柄
    语法
    第一次作业 编译原理概述
  • 原文地址:https://www.cnblogs.com/DaisyXuRan/p/5475485.html
Copyright © 2020-2023  润新知