网站建设支付,北京优化推广,公司网站制作高端,中国企业网是什么级别的媒体一.线程的生命周期及五种基本状态
关于Java中线程的生命周期#xff0c;首先看一下下面这张较为经典的图#xff1a; 上图中基本上囊括了Java中多线程各重要知识点。掌握了上图中的各知识点#xff0c;Java中的多线程也就基本上掌握了。主要包括#xff1a;
Java线程具有…一.线程的生命周期及五种基本状态
关于Java中线程的生命周期首先看一下下面这张较为经典的图 上图中基本上囊括了Java中多线程各重要知识点。掌握了上图中的各知识点Java中的多线程也就基本上掌握了。主要包括
Java线程具有五中基本状态
新建状态New当线程对象对创建后即进入了新建状态如Thread t new MyThread();
就绪状态Runnable当调用线程对象的start()方法t.start();线程即进入就绪状态。处于就绪状态的线程只是说明此线程已经做好了准备随时等待CPU调度执行并不是说执行了t.start()此线程立即就会执行
运行状态Running当CPU开始调度处于就绪状态的线程时此时线程才得以真正执行即进入到运行状态。注就 绪状态是进入到运行状态的唯一入口也就是说线程要想进入运行状态执行首先必须处于就绪状态中
阻塞状态Blocked处于运行状态中的线程由于某种原因暂时放弃对CPU的使用权停止执行此时进入阻塞状态直到其进入到就绪状态才 有机会再次被CPU调用以进入到运行状态。根据阻塞产生的原因不同阻塞状态又可以分为三种
1.等待阻塞运行状态中的线程执行wait()方法使本线程进入到等待阻塞状态
2.同步阻塞 -- 线程在获取synchronized同步锁失败(因为锁被其它线程所占用)它会进入同步阻塞状态
3.其他阻塞 -- 通过调用线程的sleep()或join()或发出了I/O请求时线程会进入到阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时线程重新转入就绪状态。
死亡状态Dead线程执行完了或者因异常退出了run()方法该线程结束生命周期。