Java--线程的分类和生命周期

来源:互联网 发布:网站中文域名注册 编辑:程序博客网 时间:2024/06/05 10:34
Java中的线程分为两类:
一种是守护线程 一种是用户线程
它们在几乎的每个方面都是相同的,唯一的区别是判断JVM何时离开
守护线程是用来服务用户线程的,通过在start()方法前调用thread.setDaemon(true)可以把一个用户线程变成一个守护线程。
Java垃圾回收就是一个典型的守护线程。
若JVM都是守护线程,当前JVM将退出。
线程的生命周期;
要想实现多线程,必须在主线程中创建新的线程对象,Java语言使用Thread类及其子类的对象来表示线程,在它的一个完整的生命周期中 通常要经历如下的五种状态:
新建:当一个Thread类及其子类的对象被声明并创建时,新生的线程对象处于新建状态。
就绪:处于新建状态的线程被start()后,将进入线程队列等待CPU时间片,此时他已具备了运行的条件。
运行:当就绪的线程被调度并获得处理器资源的时候run()方法定义了线程的操作和功能。
阻塞:在某种特殊情况下 ,被人为挂起时或执行输入输出操作时,让出CPU并临时终止自己的执行,进入阻塞状态。
死亡:线程完成了它的全部工作或线程被提前强制性地终止。