Android的多线程了解多少

线程可能大家都不陌生,经常在面试的过程中,被人问到线程的知识,大家都会回答一二。但是当问题不是以具体到“线程的创建”,“线程的使用”,“线程的优缺点”时,我们又能对多线程说出自己多少的了解呢!

1. 多线程的介绍

1.1 定义

多线程顾名思义就是开辟多个线程进行工作,换而言之多个任务“同时”进行。

“同时”,这个主要归咎于JVM虚拟机快速调度来轮换线程,使得多个线程能够轮流快速的执行,从而给我们一种同时进行的错觉。

1.2 作用

多线程的作用是使程序在并发过程中,减少多个任务在等待线程处理所带来的时间的损耗。
官方声明在多线程编程时有两大原则:

  1. 不要阻塞UI线程:主线程被阻塞超过5s,则会出现ANR的异常,故主线程不能进行耗时的操作。
  2. 不要在UI线程之外的线程进行UI操作。

1.3 使用方式

线程的使用方式主要分为三大类:基础使用,复合使用,线程池。

  1. 基础使用
    继承Thread类,或者匿名内部类创建一个Thread对象。
    实现Runnable接口,由于是接口,因此不会影响本身类的继承。
    实现Callable接口,相比Runnable,这种实现方式具有返回值,是个泛型,同时能抛出异常。
  2. 复合使用
    AsyncTask异步任务的方式进行实现。
    HandlerThread
    IntentService
  3. 线程池 即使多线程的使用,能够避免类似单线程执行多任务时,所付出的时空的消耗,但是盲目的开辟线程会造成大量的内存资源的浪费。这个时候就需要引入线程池的使用。 作用:对线程的复用,避免资源竞争出现资源浪费的问题。 常见的线程池类型:
1.  FixThreadPool
 CacheThreadPool
 SingleThreadPool
 ScheduledThreadPool

至此,多线程的了解到这里就已经写完了,如果需要知道具体某一块的使用,可查相关的具体的内容。