avatar

Catalog
java线程的状态

线程状态

  • New 新创建
  • Runnable运行中
  • Blocked被阻塞
  • Waiting等待
  • Timed Waiting计时等待
  • Terminated已终止

Thread.join

可以等待当前线程结束后,再运行主线程

中断线程

如果线程需要执行一个长时间任务,就可能终端线程

中断线程就是其他线程个该线程发一个信号,该线程收到信号后结束执行run方法

终端线程通过

volatile

volatile 关键字的目的时告诉虚拟机:

  • 每次访问变量时,总是获得主内存的最新值
  • 每次修改变量后,立刻回写道主内存

volatile可见性

总结

  1. 调用interrupt()方法可以中断一个线程
  2. 通过检测isInterrupted()标志获取当前线程是否已中断
  3. 如果线程处于等待状态,该线程会捕获InterruptedException
  4. isInterrupted()为true或者捕获了InterruptedException都应该立刻结束
  5. 通过标志位判断需要正确使用volatile关键字
  6. volatile关键字解决了共享变量在线程间的可见性问题
Author: kim yhow
Link: http://yoursite.com/2020/08/07/java线程的状态/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
    微信
  • 支付寶
    支付寶