即使是单核处理器也能支持多线程执行代码,CPU通过分配给每个线程CPU时间片来实现这个机制。时间片是CPU分配给各线程的时间,因为时间非常短,所以CPU通过不停的切换线程执行,让我们感觉多个线程是同时执行的,时间片一般都是几十ms。
CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便下回切换到这个任务时,可以再加载这个任务的状态。所有任务从保存到再加载的过程就是一次上下文切换。上下文切换回影响多线程执行的效率。
即使是单核处理器也能支持多线程执行代码,CPU通过分配给每个线程CPU时间片来实现这个机制。时间片是CPU分配给各线程的时间,因为时间非常短,所以CPU通过不停的切换线程执行,让我们感觉多个线程是同时执行的,时间片一般都是几十ms。
CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便下回切换到这个任务时,可以再加载这个任务的状态。所有任务从保存到再加载的过程就是一次上下文切换。上下文切换回影响多线程执行的效率。