- 主题: 上下文切换
- 作者: Rocky_Yu
- 时间: 2019/3/6 17:16:14
- 分类: 9.1-编程杂记
- Version: 1.0.0
******************************************************
Even in the darkness, you’ll see the truth.
*******************************************************
编程中的上下文切换(Context Switch)
今天在看多线程是提到了一个上下文切换的概念,感觉不是特别懂,查阅了相关资料,写下了一些初步的理解。
要理解上下文切换首先要理解什么是上下文。
在多线程编程中,因为线程切换频繁,而每个线程要正确执行,需要对一些初始化的变量,而对每个进程来说,所需要的变量等使得线程正常执行的元素(或需求)大多都不相同,所以就要在执行A线程时,加载A线所需要的元素,在执行B线程时,需要加载B线程所需要的元素。这些元素就可理解为上下文。而上下文切换,就是在这些交替保存和加载这些元素。
上下文切换的一个缺点是占用内存:在线程在A临时挂起时,操作系统就要保存A的上下文,等A再次运行时再恢复。
下面例举几个关于上下文的例子,帮助理解:线程上下文、应用上下文、请求上下文等。
********************************************************************
即时身处黑暗之中,你也能够看到真相!——《神盾局特工》
********************************************************************