美文网首页java线程探索
线程的七种状态

线程的七种状态

作者: 朽木亦自雕 | 来源:发表于2019-02-19 16:48 被阅读5次

    七种状态

    1:新建状态(New)

    Thread thread = new Thread();
    

    2:就绪状态(Runnable)

      thread.start();
    

    3:运行状态(Run)

    //抢占到CPU资源,run()方法得到执行
    

    4:等待状态(Wait)

    thread.wait();
    

    5:阻塞状态(Blocked)

    thread.join();
    

    6:超时等待()

    thread.sleep(long time);
    

    7:死亡状态

    //线程正常执行完、调用stop()方法、抛出异常或ERROR。
    

    状态切换

    运行状态切换

    1:start():调用start()方法会使得该线程开始执行,正确启动线程的方式。使线程由新建(New)状态切换到就绪状态(Runnable)状态,参与CPU资源的抢占。
    2:wait():调用wait()方法,进入等待状态,释放资源,让出CPU。需要在同步快中调用。
    sleep():调用sleep()方法,进入超时等待,不释放资源,让出CPU
    stop():调用sleep()方法,线程停止,线程不安全,不释放锁导致死锁,过时。
    join():调用sleep()方法,线程是同步,它可以使得线程之间的并行执行变为串行执行。
    yield():暂停当前正在执行的线程对象,并执行其他线程,让出CPU资源可能立刻获得资源执行。
    yield()的目的是让相同优先级的线程之间能适当的轮转执行
    notify():在锁池随机唤醒一个线程。需要在同步快中调用。
    nnotifyAll():唤醒锁池里所有的线程。需要在同步快中调用。

    转载:https://www.cnblogs.com/dc-earl/p/9594162.html

    相关文章

      网友评论

        本文标题:线程的七种状态

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