Java 线程状态

线程停止

  1. 建议线程正常停止 --> 利用次数, 不建议死循环
  2. 建议使用标志位--> 设置一个标志位
  3. 不要使用 stop 或者 destroy 等过时或者JDK不建议使用的方法

线程休眠

使用sleep进行时间的计算(暂时)

拓展:

Date s1 = new Date(System.currentTimeMillis());//获取当前时间

new SimpleDateFormat("HH:mm:ss").format(s1)); //时间格式工厂显示时间

线程礼让

Yield

让线程重新申请调用(礼让不一定成功)

线程强制执行

Join

Join合并线程, 待此线程执行完成后, 再执行其他线程, 其他线程阻塞

观测线程状态

使用 Thread.state 进行查询

  • NEW : 尚未启动的线程处于此状态
  • RUNNABLE : 再Java虚拟机中执行的线程处于此状态
  • BLOCKED : 被阻塞等待监视器锁定的线程处于此状态
  • WAITING : 正在等待另一个线程执行特定动作的线程处于此状态
  • TIMED_WAITING : 正在等待另一个线程执行动作达到指定等待时间的线程处于此状态
  • TERMINATED : 已退出的线程处于此状态

注: 可以通过线程 s1.state 是否等于TERMINATED 来进行判断线程是否结束/死亡

线程优先级

t1.setPriority()设置优先级从小到大为 1-10

注意: main 优先级最高 设置优先级时不能超出1-10的范围

先设置优先级再start

守护线程

虚拟机不用等待守护线程执行完毕

setDaemon()

括号中默认为 false 意为 默认为用户线程

当设置为 true 时 意为 设置为守护线程

posted @ 2023-02-15 14:31  G02c5  阅读(12)  评论(0编辑  收藏  举报