面试题:上下文切换是什么?
我们都知道cpu分配给每个线程的时间不是持续的,而是以时间片的形式,在多个线程之间反复横跳,每个线程就分给一丢丢,这样来保证雨露均沾。
那么,每个线程的执行进度是不一样的,一个线程可能执行了两步,那么下次cpu光顾的时候,要怎么知道上次执行到哪儿了?
所以,cpu会在切换前保存好自己的当前对线程执行的状态,以便下次回来时根据这个状态知道该从哪里继续执行。
那么这样一个保存+再加载的过程就是上下文切换。
我们都知道cpu分配给每个线程的时间不是持续的,而是以时间片的形式,在多个线程之间反复横跳,每个线程就分给一丢丢,这样来保证雨露均沾。
那么,每个线程的执行进度是不一样的,一个线程可能执行了两步,那么下次cpu光顾的时候,要怎么知道上次执行到哪儿了?
所以,cpu会在切换前保存好自己的当前对线程执行的状态,以便下次回来时根据这个状态知道该从哪里继续执行。
那么这样一个保存+再加载的过程就是上下文切换。