线程状态概述
线程状态 | 导致状态发生条件 |
NEW | 至今尚未启动的线程处于这种状态 |
RUNNABLE | 正在Java虚拟机中执行的线程处于这种状态 |
BLOCKED | 受阻塞并等待某个监视器锁的线程处于这种状态 |
WAITING | 无限期地等待另一个线程来执行某一特定操作的线程处于这种状态 |
TIMED_WAITING | 等待另一个线程来执行取决于指定等待时间的操作的先处于这种状态 |
TERMINATED | 已退出的线程处于这种状态 |
阻塞状态 :具有cpu的执行资格,等待cpu空闲时执行
休眠状态 :放弃cpu的执行资格,cpu空闲,也不执行
等待唤醒案例分析
wait:线程不再活动,不再参与调度,进入wait set中,因此不会浪费CPU资源,也不会去竞争锁了,这时的线程状态即时WAITING。
它还要等着别的线程执行一个特别的动作,也即是“通知(notify)”在这个对象上等待的线程从wait set中释放出来,重新进入到调度队列中
notify:选取所通知对象的wait set中的一个线程释放;例如,参观有空位后,等待就餐最久的顾客最先入座。
notifyAll:通知所有的由于使用这个同步方法而处于等待的线程结束等待。
搜索
复制
标签:状态,等待,线程,概述,执行,唤醒,cpu,wait 来源: https://www.cnblogs.com/pengtianyang/p/16462685.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。