并发编程之线程第一篇
并发编程之线程第一篇 3.4 原理之线程运行 线程上下文切换(Thread Context Switch) 3.5 常见方法 3.6 start与run 3.7 sleep与yield 案例 - 防止CPU占用100% 3.8 join方法详解 3.9 interrupt方法详解 两阶段终止模式 3.10 不推荐的方法 3.11 主线程与守护线程 3.4 原理之线程运行 Java虚拟机栈 JVM中由堆、栈、方法区所组成,其中栈内存是给线程使用,每个线程启动后,虚拟机就会为其分配一块栈内存。 每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存 每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法 线程上下文切换(Thread Context Switch) 因为以下一些原因导致cpu不再执行当前的线程,转而执行另一个线程的代码 线程的cpu时间片用完 垃圾回收 有更高优先级的线程需要运行 线程自己调用了sleep、yield、join、park、synchronized、lock等方法程序 当Context Switch发生时,需要由操作系统保存当前线程的状态,并恢复另一个线程的状态,Java中对应的概念就是程序计数器(Program Counter Register),它的作用是记住下一条jvm指令的执行地址,是线程私有的 3.5 常见方法 方法名 功能说明