本文目录一览:
Java中线程的可用状态有哪些?
Java中线程的可用状态有下面几种:
就绪(Runnable):线程准备运行,不一定立马就能开始执行。
运行中(Running):进程正在执行线程的代码。
等待中(Waiting):线程处于阻塞的状态,等待外部的处理结束。
睡眠中(Sleeping):线程被强制睡眠。
I/O阻塞(BlockedonI/O):等待I/O操作完成。
同步阻塞(BlockedonSynchronization):等待获取锁。
死亡(Dead):线程完成了执行。
基于java 线程的几种状态
下面是java 线程的5种状态:
1、新建(new)
新建一个线程的对象。
2、可运行(runable)
线程对象创建后,其他线程调用该线程的start方法。或者该线程位于可运行线程池中等待被线程调用,已获取cpu的使用权。
3、运行(running)
可运行的线程获取了cpu的使用权,执行程序代码
4、阻塞(block)
由于某些原因该线程放弃了cpu的使用权。停止执行。除非线程进入可运行的状态,才会有机会获取cpu的使用权。
(1)等待阻塞:运行中的线程执行wait方法,这时候该线程会被放入等待队列。
(2)同步阻塞:运行中的线程获取同步锁,如果该同步锁被别的线程占用,这个线程会成被放入锁池,等待其他线程释放同步锁。
(3)其他阻塞:运行的线程执行sleep或者join方法这个线程会成为阻塞状态。当sleep超时,join等待线程终止,该线程会进入可运行状态。
5、死亡(dead)
线程run mian 执行完毕后,或者因为某些异常产生退出了 run 方法,该线程的生命周期结束。
java多线程有哪些状态?
初始态:一个线程调用了new方法之后,并在调用start方法之前的所处状态。
就绪:一旦线程调用了start 方法,线程就转到Runnable 状态。
阻塞/ NonRunnable:线程处于阻塞/NonRunnable状态,这是由两种可能性造成的:要么是因挂起而暂停的,要么是由于某些原因而阻塞的,例如包括等待IO请求的完成。
停止/退出:线程转到退出状态,这有两种可能性,要么是run方法执行结束,要么是调用了stop方法。