学习笔记之Thread是什么?

  • Thread类的每一个实例代表一个jvm中的线程。(java中除此之外的任何东西都不代表线程,见源码注释的第一行)
    • start()之后,且未结束。
  • Runnable/Callable都不是线程。
  • Thread.start()后,jvm中就增加:
    • 一个工人/执行流
    • 一套方法栈
      • Java最基本的执行单元是方法,多个方法的栈称为方法栈,一个线程拥有一个方法栈(一个方法栈对应一个线程),拥有方法栈是这个线程能做事情的一个标志,最开始默认的是主线程main。
      • main线程的底部是xxx类.main方法,Thread  start()之后就会开辟一个新的方法栈,底部是Thread.run方法。Java世界中java虚拟机的方法栈最底部要么是main方法,要么是Thread.run方法,不会有其他第三种情况。main方法退出后,其他线程也可以存在。
  • 不同的执行流的同步执行是一切线程问题的根源。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页