多线程-线程状态观测(判断线程是否结束)
如何在线程里定义五个状态
Thread.State:可以去这个类查看线程的状态
线程状态。线程可以处于以下状态之一:
NEW 尚未启动的线程处于此状态
RUNNABLE:在java虚拟机中执行的线程处于此状态
WAITING:正在等待另一个线程执行特定动作的线程处于此状态
TIMEO_WAITING:正在等待另一个线程执行动作达到指定等待时间的线程处于此状态。
TERMINATED:已退出的线程处于此状态。
一个线程可以在给定时间点处于一个状态。这些状态是不反映任何操作系统线程状态的虚拟机状态。
//观察测试线程的状态 public class Main { public static void main(String[] args) { Thread thread=new Thread(()->{ for (int i=0;i<5 ;i++ ){ try {//让线程每跑一次休眠一秒 thread.sleep(1000); } catch(InterruptedException e) { e.printStackTrace(); } } System.out.println("**********"); }); //观察线程状态 Thread.State state=new thread.getState(); System.out.println("状态:"+state);//未调用start时,线程都是NEW状态 //观察启动后的线程状态 thread.start();//启动线程 state=thread.getState(); System.out.println("状态:"+state);//run //判断只要线程不终止,就一直输出状态 while(state!=Thread.State.TERMINATED){ Thread.sleep(100);//一秒钟跑10次 //更新线程状态 state=thread.getState(); } } }
分类:
java之多线程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署