Java 线程状态
线程停止
- 建议线程正常停止 --> 利用次数, 不建议死循环
- 建议使用标志位--> 设置一个标志位
- 不要使用 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 时 意为 设置为守护线程