网站认证值不值得做,商河做网站多少钱,西安计算机培训班速成班,搜索引擎网站入口生命周期 当线程被创建并启动以后#xff0c;它不是一启动就进入执行状态#xff0c;也不会一直处于执行状态#xff0c;而是会经历五种状态。 线程状态的五个阶段#xff1a;
新建状态#xff08;New#xff09;就绪状态#xff08;Runnable#xff09;运行状态…生命周期 当线程被创建并启动以后它不是一启动就进入执行状态也不会一直处于执行状态而是会经历五种状态。 线程状态的五个阶段
新建状态New就绪状态Runnable运行状态Running阻塞状态Blocked死亡状态Dead
生命周期图 新建状态New 当程序使用new关键字创建了一个线程之后该线程就处于新建状态。例 Thread t new MyThread(); 就绪状态Runnable 调用start()方法后线程就会处于就绪状态此时只能说明此线程已经做好了执行的就绪准备表示可以运行了但还不是正在运行的线程。 运行状态Running 当线程获得到JVM中线程调度器的调度时线程就会处于运行状态开始执行run()方法的线程执行体。 阻塞状态Blocked 这是线程仍处于活动状态但当前没有资格运行因为一些原因暂时放弃对CPU的使用权停止执行时的状态。 线程进入阻塞的三种状态
1、等待阻塞
1线程调用wait()方法使本线程进入到等待状态2调用join()方法使本线程进入到另一种等待状态等待别线程终止或者超时后才执行自己这个线程。
2、同步阻塞
线程在获取synchronized同步锁失败(因为锁被其它线程所占用)它会进入同步阻塞状态
3、其他阻塞
通过调用线程的sleep()或join()或发出了I/O请求时线程会进入到阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时线程重新转入就绪状态。
死亡状态Dead 当退出run()方法时线程就会自然死亡处于终止或死亡状态也就结束了生命周期。