在多线程编程中,线程个数一般要大于CPU个数,而每个CPU在同一时刻只能被一个线程使用,为了让用户感觉多个线程同时执行,CPU资源的分配采用了时间轮转的策略,也就是给每个线程分配一个时间片,线程在分配时间片内占用CPU执行任务,使用完时间片后,就会处于就绪状态并让出CPU让其它线程占用,这就是上下文切换。
线程上下文切换时机 1、当前线程的CPU时间片使用完成处于就绪状态。 2、当前线程被其它线程中断。