• 【JAVA SE基础篇】56.线程状态、方法


    1.线程状态

    新生状态->就绪状态->运行状态->死亡状态

    注:

    1.线程死亡后不能重新开启

    2.线程阻塞后进入就绪状态

    注:

    1.每个线程new一个对象后,都有自己的工作空间,一个工作空间匹配一个线程

    2.进入就绪状态的四种方法:start方法,阻塞接触,yield方法,jvm将cpu从本地线程切换到其他线程

    3.进入阻塞状态的四种原因:sleep,wait,join,io等操作

    4.进入死亡状态的2种原因:代码执行结束,线程强制结束(stop/destory)

    2.线程方法

    1.sleep():

      使线程停止运行一段时间,将处于阻塞状态

      如果调用了sleep方法之后,没有其他等待执行的进程,这个时候当前线程不会马上回复执行

    2.join():

      阻塞指定线程等到另一个线程完成以后再继续执行

    3.yield():

      让当前正在执行线程暂停,不是阻塞线程,而是将线程转入就绪状态

      调用了yield方法之后,如果没有其他等待执行的线程,此时当前线程就会马上恢复执行

    4.setDaemon():

      可以将指定的线程设置程后台线程,守护线程

      创建用户线程的线程结束时,后台线程也随之消亡

      只能在线程启动之前把它设为后台线程

    5.setPriority(int newPriority) getPriority():

      线程的优先级代表的是概率

      范围从1到10,默认为5

    6.stop():

      不推荐使用

    3.线程停止

    不使用JDK提供的stop()/destory()

    提供一个boolean型的终止变量,当这个变量置为false,则终止线程运行

    例:

    4.线程暂停

    sleep(时间)指定当前线程阻塞的毫秒数

    sleep存在异常InterruptedException

    sleep时间达到后线程进入就绪状态

    sleep可以模拟网络延时,倒计时等

    每一个对象都有一个锁,sleep不会释放锁

    例:

  • 相关阅读:
    浅谈线段树
    浅谈KMP
    20200729线上模拟题解
    20200727线上模拟题解
    声明
    tarjan--割点,缩点
    20201029模拟
    高精模板
    二分图--二分图的几种模型
    树的直径与树的重心
  • 原文地址:https://www.cnblogs.com/chengkuan/p/13324703.html
Copyright © 2020-2023  润新知