一个线程对象 一辈子只能start一次
image.png
1. 获取主线程 线程对象
Thread.currentThread()
2.线程优先级:image.png
子线程默认的优先级是:5
主线程默认的优先级也是5
优先级只能是1~10

线程控制的几个方法:

  1. 1.线程休眠<br /> public static void sleep(long millis)
  2. 2. 线程加入(线程强制执行)<br /> public final void join()<br /> 在当前线程启动之后 **其他线程 未启动之前调用**<br /> 让当前线程执行完以后 再执行其他线程
  3. 3. 线程礼让<br /> public static void yield()<br /> 会礼让其他正在等待的线程一次
  4. 4. 后台线程(设置守护线程)<br /> public final void setDaemon(boolean on)<br /> 被守护的线程如果执行完毕 守护线程立即停止<br /> <br /> 5.中断线程<br /> public final void stop()<br /> **终止线程!!! (不推荐使用)**<br /> 会直接终止线程 导致线程剩余的代码无法执行<br /> 会产生丢失数据问题
  5. public void interrupt()(**不推荐使用**)<br /> 中断线程的睡眠 让睡眠提前终止 并抛出一个异常<br /> 直接匹配sleepcatch代码块

到底如何提前结束一个线程?

    推荐使用布尔值 结束线程的长循环 或者提前结束 耗时操作