美文网首页java面试笔记Java 杂谈
1、什么是上下文切换?

1、什么是上下文切换?

作者: 编程老司机 | 来源:发表于2018-05-23 16:19 被阅读2次

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

    这就像我们同时读两本书,当我们在读一本英文的技术书时,发现某个单词不认识,于是便打开中英文字典,但是在放下英文技术书之前,大脑必须先记住这本书读到了多少页的第多少行,等查完单词之后,能够继续读这本书。这样的切换是会影响读书效率的,同样上下文切换也会影响多线程的执行速度。

相关文章

  • 1、什么是上下文切换?

    即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各...

  • 并发编程挑战

    影响并发原因 Lmbench3 上下文切换时长vmstat 上下文切换次数vmstat 1cs 表示次数 1、...

  • java并发编程的艺术笔记第一章——并发编程的挑战

    1、并发编程的挑战来自哪里? 1.1、上下文切换 1.2、死锁 1.3、资源限制的挑战 1.1、上下文切换 单核处...

  • 上下文切换

    什么是上下文切换 上下文切换在多任务操作系统中是一个必须的特性。多任务操作系统是指多个进程运行在一个 CPU 中互...

  • CPU 上下文切换(上)

    根据任务的不同,CPU 的上下文切换就可以分为几个不同的场景 进程上下文切换 线程上下文切换 中断上下文切换 小结...

  • 并发编程的挑战

    1、线程上下文切换:任务从保存到再加载的过程就是一次上线文切换,线程上下文切换是需要开销的。 2、引起线程上下文切...

  • 什么是CPU上下文切换?

    现在linux是大多基于抢占式,CPU给每个任务一定的服务时间,当时间片轮转的时候,需要把当前状态保存下来,同时加...

  • 地铁快餐:Java并发编程73道面试题快速一览

    地铁快餐 1、在java中守护线程和本地线程区别? 2、线程与进程的区别? 3、什么是多线程中的上下文切换? 4、...

  • 2:并发编程的挑战

    1:上下文切换 减少上下文切换的方法:无锁并发编程、CAS算法、使用最少线程和使用协程。 2:死锁 避免死锁的几种...

  • java 基础回顾 - 基于 CAS 实现原子操作的基本理解

    1. 什么是原子操作 所谓原子操作是指不会被打断的操作,这种”打断”在操作系统层面, 一般是指线程间的上下文切换....

网友评论

    本文标题:1、什么是上下文切换?

    本文链接:https://www.haomeiwen.com/subject/lcnrjftx.html