一、Thread.currentThread().interrupt()
- 中断当前线程,如果线程被阻塞sleep, wait, join则会中断阻塞,抛出异常。可以捕获异常处理逻辑
二、Thread.interrupted()
- 作用:返回当前线程是否被中断。且如果当前线程被中断,取消中断过程,线程被阻塞。如果未被中断,则线程被阻塞
三、Thread.currentThread().isInterrupted()
- 返回线程是否被中断,无取消中断的效果。
- 如果截图,返回了线程被中断,最后的执行结果是抛出异常
四、join()阻塞主线程,子线程执行完成再执行主线程
五、Thread.yield()
- 线程让出时间片,变为准备就绪状态,下次可能抢到cpu资源继续执行,也可能抢不到。不释放锁
六、Thread.sleep(1000)
- 阻塞线程,到达指定时间后自动唤醒,不释放锁
七、对象t.wait(1000)
- 阻塞线程,达到指定时间后自动唤醒,或者t.notify,t.notifyAll唤醒。释放锁
- 且方法必须加同步代码块synchronized,加锁对象为t
八、对象t.notify
- 随机唤醒一个t对象wait()阻塞的线程
九、对象t.notifyAll
- 唤醒所有t对象wait()阻塞的线程
十、Thread.setPriority
- 设置线程优先级。数值越大,优先级越大,cpu优先调动概率越大,但是不是说优先级大的一定比优先级小的先调度