千家信息网

Java线程的生命周期是什么

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容介绍了"Java线程的生命周期是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java的
千家信息网最后更新 2026年11月04日Java线程的生命周期是什么

本篇内容介绍了"Java线程的生命周期是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Java的线程生命周期有六种状态:

  1. New(初始化状态)

  2. Runnable(可运行/运行状态)

  3. Blocked(阻塞状态)

  4. Waiting(无时间限制的等待状态)

  5. Timed_Waiting(有时间限制的等待状态)

  6. Terminated(终止状态)

1.New(初始化状态):指的是在高级语言,比如Java。在Java层面的线程被创建了,而在操作系统中的线程其实是还没被创建的,所以这个时候是不可能分配CPU执行这个线程的!所以这个状态是高级语言独有的,操作系统的线程没这个状态。我们New了一个线程,那时候它就是这个状态。

2.Runnable(可运行/运行状态):这个状态下是可以分配CPU执行的,在New状态时候我们调用start()方法后线程就处于这个状态。

3.Blocked(阻塞状态):这个状态下是不能分配CPU执行的,只有一种情况会导致线程阻塞,就是synchronized!我们知道被synchronized修饰的方法或者代码块同一时刻只能有一个线程执行,而其他竞争锁的线程就从Runnable到了Blocked状态!当某个线程竞争到锁了它就变成了Runnable状态。

注意并发包中的Lock,是会让线程属于等待状态而不是阻塞,只有synchronized是阻塞。(感觉是历史遗留问题,没必要多一个阻塞状态和等待没差啊)

4.Waiting(无时间限制的等待状态):这个状态下也是不能分配CPU执行的。有三种情况会使得Runnable状态到waiting状态

1.调用无参的Object.wait()方法。等到notifyAll()或者notify()唤醒就会回到Runnable状态。

2.调用无参的Thread.join()方法。也就是比如你在主线程里面建立了一个线程A,调用A.join(),那么你的主线程是得等A执行完了才会继续执行,这是你的主线程就是等待状态。

3.调用LockSupport.park()方法。LockSupport是Java6引入的一个工具类Java并发包中的锁都是基于它实现的,再调用LocakSupport.unpark(Thread thread),就会回到Runnable状态。

5.Timed_Waiting(有时间限制的等待状态):其实这个状态和Waiting就是有没有超时时间的差别,这个状态下也是不能分配CPU执行的。有五种情况会使得Runnable状态到waiting状态。

  1. Object.wait(long timeout)。

  2. Thread.join(long millis)。

  3. Thread.sleep(long millis)。注意Thread.sleep(long millis, int nanos) 内部调用的其实也是Thread.sleep(long millis)。

  4. LockSupport.parkNanos(Object blocked,long deadline)。

  5. LockSupport.parkUntil(long deadline)。

6.Terminated(终止状态):在我们的线程正常run结束之后或者run一半异常了就是终止状态!

注意有个方法Thread.stop()是让线程终止的,但是这个方法已经被废弃了,不推荐使用,因为比如你这个线程得到了锁,你stop了之后这个锁也随着没了,其它线程就都拿不到这个锁了!这不玩完了么!所以推荐使用interrupt()方法。

interrupt()会使得线程Waiting和Timed_Waiting状态的线程抛出 interruptedException异常,使得Runnabled状态的线程如果是在I/O操作会抛出其它异常。

如果Runnabled状态的线程没有阻塞在I/O状态的话,那只能主动检测自己是不是被中断了,使用isInterrupted()。

"Java线程的生命周期是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

状态 线程 方法 阻塞 就是 分配 情况 运行 限制 周期 生命 时候 时间 高级 操作系统 内容 只有 完了 无时 是在 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司 广东万易互联网科技有限公司惠州分公司 广东猪兼强互联网科技有限公司 互联网科技会 盈实互联网科技 互联网的科技创新 猪兼强互联网科技 小马过河互联网科技 深圳天众互联网科技公司 无锡溥仪互联网科技有限公司 太原新华互联网科技学校怎么样 上海电发互联网科技有限公司 成都玖崟互联网科技有限公司乐商圈怎么样 浙江互联网科技研学营 中国航天科技大学国际工业互联网 坤平互联网科技 深圳艾果互联网通讯科技 湖北辰鑫科技互联网 互联网科技和医药行业 保山浩联互联网科技有限公司 科技互联网 金融科技创新监管互联网金融 深圳前海聚择互联网科技有限公司 欧洲十大科技互联网公司 搜狐科技互联网 民营互联网公司国防科技 深圳市罗太互联网科技有限公司 昆明中奇联合互联网科技 普陀区互联网教育科技管理办法 求路客互联网科技电话
0