
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
线程与进程是程序员在学习Java编程开发语言的时候需要重点掌握的一个编程开发技术知识点,而本文我们就通过案例分析来简单了解一下,Java编程线程状态分析。
New新建状态
New代表一个线程已经创建,但是还没有启动的状态。当我们使用newThread()新建一个线程,如果线程没有运行start()方法,那么此时的线程的状态,就是New状态。而一旦调用了start方法,那么线程就从New变成了Runnable。
Runnable可运行状态
一旦调用start方法,线程就进入了Runnable状态。
java中的Runnable状态,对应操作系统中的两种状态,分别是就绪态和运行态。也就是说,处于Runnable状态的线程,可能正在执行,也可能没有执行。
所以说,如果一个正在运行的线程是Runnable状态,当它运行到一半,执行该线程的CPU被调度去做其他事情,该线程暂停运行,此时该线程仍处于Runnable
状态,因为它随时有可能被调度回来继续执行任务。
Blocked被阻塞状态
Runnable状态进入Blocked状态的途径:进入synchorized代码块时,但是没有获得monitor锁。
退出Blocked状态的途径:当其他线程释放了这个锁,并且线程调度器允许该线程持有这个锁的时候,它就会变回Runnable状态
Waiting阻塞状态
对于waiting状态的进入,有三种情况,分别是:
线程调用了没有timeout参数的Object.wait()方法
线程调用了没有timeout参数的Thread.join()方法
线程调用了Locksupport.park()方法
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。