Java 线程的几种状态

  1. 新建状态(NEW):当线程对象被创建时,它处于新建状态,此时系统已经为该线程分配了必要的资源,例如线程栈等。

  2. 就绪状态(READY):当线程已经准备好被调度执行,但是当前没有分配到 CPU 时间片时,它处于就绪状态。

  3. 运行状态(RUNNING):当线程被分配到 CPU 时间片并正在执行时,它处于运行状态。

  4. 阻塞状态(BLOCKED):当线程因为某些原因无法运行时,例如等待某个资源、等待 IO 完成等,它处于阻塞状态。如果调用 sleep()、 suspend()、 wait()等方法,线程都将进入堵塞状态

  5. 等待状态(WAITING):当线程因为某个条件而需要等待时,例如等待某个锁、等待某个信号量等,它处于等待状态。

  6. 终止状态(TERMINATED:):当线程执行完成或出现了异常而结束时,它处于消亡状态。

常见问题:

1、造成线程阻塞的方法?

阻塞线程的方法:join、yield、sleep 和Object的wait()方法

2、Java的守护进程(后台进程)?

设置线程为后台进程运行:setDaemon(true) 如果一个进程中只有后台线程在运行,这个进程就会结束。

3、造成线程阻塞后,线程回到哪个状态了?

通过join、yield、sleep造成线程阻塞后是回到了就绪状态

3、哪些状态之后是回到就绪状态?

 a)通过join、yield、sleep造成线程阻塞后是回到了就绪状态

 b)遇到synchronized后

 c)遇到Object的等待wait方法后

4、sleep会释放锁吗?

 sleep不会释放锁

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值