美文网首页
进程状态和线程状态

进程状态和线程状态

作者: xueseyounai | 来源:发表于2020-03-30 10:04 被阅读0次

    进程状态有五种:

    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

    相关文章

      网友评论

          本文标题:进程状态和线程状态

          本文链接:https://www.haomeiwen.com/subject/yxymuhtx.html