课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
java编程语言的学习人数和应用范围是非常多的,而今天我们就一起来了解一下,java编程线程状态与生命周期。
New:新创建的一个线程,处于等待状态。
Runnable:可运行状态,并不是已经运行,具体的线程调度各操作系统决定。在Runnable中包含了Ready、Running两个状态,当线程调用了start()方法后,线程则处于就绪Ready状态,等待操作系统分配CPU时间片,分配后则进入Running运行状态。此外当调用yield()方法后,只是谦让的允许当前线程让出CPU,但具体让不让不一定,由操作系统决定。如果让了,那么当前线程则会处于Ready状态继续竞争CPU,直至执行。
Timed_waiting:指定时间内让出CPU资源,此时线程不会被执行,也不会被系统调度,直到等待时间到期后才会被执行。下列方法都可以触发:Thread.sleep、Object.wait、Thread.join、LockSupport.parkNanos、LockSupport.parkUntil。
Wating:可被唤醒的等待状态,此时线程不会被执行也不会被系统调度。此状态可以通过synchronized获得锁,调用wait方法进入等待状态。后通过notify、notifyall唤醒。下列方法都可以触发:Object.wait、Thread.join、LockSupport.park。
Blocked:当发生锁竞争状态下,没有获得锁的线程会处于挂起状态。例如synchronized锁,先获得的先执行,没有获得的进入阻塞状态。
Terminated:这个是终止状态,从New到Terminated是不可逆的。一般是程序流程正常结束或者发生了异常。
希望这辈子,最让你无悔的事情就是来达内学习!学习向来不是件易事,但无论过程多么艰难,希望你依然热爱生活,热爱学习!永远记得,达内将与你一同前行!现在扫码,立即领取万元课程礼包,助力0基础快速入行,为你梳理行业必备技能,全方位了解岗位发展前景!
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。