Nixo Home

Servce与Thread使用场景与区别

字数统计: 495阅读时长: 1 min
2019/07/24 Share

Servce与Thread使用场景与区别

  • Thread是程序执行的最小单元,它是分配CPU的基本单位

线程的生命周期

  • 新建(new Thread之后 Thread就进入了新建状态,还有可能进入未启动状态)
  • 就绪(线程已经启动了,正在等待CPU分配的时间片,在就绪队列中,排队等候CPU的资源)
  • 运行(线程已经获得了CPU的资源,正在执行任务,这时候正在执行run()方法,此时除非此线程自动放弃CPU的资源,或者有更高优先级的线程进入,否则该线程就会一直运行,直到结束)
  • 死亡(当线程执行完毕,或者被其他线程杀死的时候,线程就进入了一种死亡状态,这时候线程就不可能进入就绪或者等待的状态)
  • 阻塞(由于某种原因导致正在运行的线程让出CPU并暂停自己的执行这时候线程就会进入阻塞状态)
  • Thread的缺点(无法控制,由于一般Thread都是Activity创建的,如果Activity销毁时没有结束线程,那么线程就会一直执行下去,这时候该怎么办,就需要使用Servce了)

#Servce

因为Servce创建之后就会一直运行,所以可以在Servce中创建并控制Thread就不用担心Thread无法控制的问题了

  • Servce是Android的一种机制,服务是运行在主线程中的,所以Servce中是不可以进行耗时操作的

Servce生命周期

  • onCreate(创建服务)
  • onStart(开启服务)
  • onDestory(销毁一个服务)
  • onBind(绑定一个服务)
  • onUnbind(解绑一个服务)

Servce与Thread是完全不同的两个东西,但是Servce与Thread在各自领域有自己的作用和定义以及它们的生命周期他们一点关系都没有,但是要解决Android中的一些问题就需要结合使用Servce和Thread

CATALOG
  1. 1. Servce与Thread使用场景与区别
  2. 2. 线程的生命周期
    1. 2.1. Servce生命周期
  3. 3. Servce与Thread是完全不同的两个东西,但是Servce与Thread在各自领域有自己的作用和定义以及它们的生命周期他们一点关系都没有,但是要解决Android中的一些问题就需要结合使用Servce和Thread