进程状态有五种:
1.创建状态(new) :进程正在被创建,尚未到就绪状态。
2.就绪状态(ready) :进程已处于准备运行状态,即进程获得了除了处理器之外的一切所需资源,一旦得到处理器资源(处理器分配的时间片)即可运行。
3.运行状态(running) :进程正在处理器上上运行(单核CPU下任意时刻只有一个进程处于运行状态)。
4.阻塞状态(waiting) :又称为等待状态,进程正在等待某一事件而暂停运行如等待某资源为可用或等待 IO 操作完成。即使处理器空闲,该进程也不能运行。
5.结束状态(terminated) :进程正在从系统中消失。可能是进程正常结束或其他原因中断退出运行。
线程状态有6中,定义在Thread类中的enum类型的state类
public enum State {
NEW,
RUNNABLE,
BLOCKED,
WAITING,
TIMED_WAITING,
TERMINATED;
}
分为正常状态3种:
1.NEW:新建状态,Mythread thread=new MyThread();此时thread的状态
2.RUNNABLE:运行状态,thread.start();此时thread的状态,但是处于这个状态的线程并不一定真正执行,可能会存在在等待资源,因此网上也有人将这个状态分为就绪状态和执行状态两种
3.TERMINATED:结束状态,线程执行完之后的状态
异常状态3种:
1.BLOCKED:阻塞状态,通常出现在synchronized语句块中,代表着一个线程等待锁
2.WAITING:等待状态,通常出现在Object.wait(),Thread.join(),LockSupport.park()语句前后
3.TIMED_WAITING:等待状态,当前线程的等待时间是有限制的,时间一到线程就会被唤醒,通常出现Thread.sleep(long),Object.wait(long),Thread.join(long),LockSupport.parkNanos(),LockSupport.parkUntil()
补充:
1.为什么wait()是Object类的
https://www.cnblogs.com/lirenzhujiu/p/5927241.html
2.sleep()方法在thread类
https://blog.csdn.net/liuzhe_2008/article/details/36901737?utm_source=blogxgwz0
网友评论