CPU的资源分配基于时间片轮转,而在一段时间内就会发生时间片之间的切换(可能是不同线程的切换),换言之一个线程所属时间片使用完(被中断),切换至另一线程的过程就是线程上下文切换。在 Java 中垃圾回收也会导致线程切换,因为每个线程内都存有程序计数器记录当前执行位置,以及栈帧存储局部变量等信息,因此线程切换会带来一定的开销。