线程和进程的上下文模型区别
2018-02-03 14:16
239 查看
对于传统进程模型来说,其上下文分主要为下面三部分(寄存器值不算在里面):
而对于线程模型来说,全局区和堆时进程中所有线程共有的,因此,线程需要保存的上下文只有一个
对于现代C++来说,有一种变量类型叫做线程本地变量(thread local)
这种情况下,我觉得不排除线程需要有自己的全局区用来区分不同线程中该变量的值
也就意味着,当CPU在时钟中断时切换线程只需要保存当前线程的栈(甚至不需要,如果内存空间够的话)到虚拟内存,然后将需要运行的线程的栈回复到内存中,获取该线程上一次运行的位置,从该位置继续运行。
全局区(用来保存进程的全局对象) |
堆(动态分配的内存空间) |
栈(保存函数运行时的信息) |
栈 |
这种情况下,我觉得不排除线程需要有自己的全局区用来区分不同线程中该变量的值
也就意味着,当CPU在时钟中断时切换线程只需要保存当前线程的栈(甚至不需要,如果内存空间够的话)到虚拟内存,然后将需要运行的线程的栈回复到内存中,获取该线程上一次运行的位置,从该位置继续运行。
相关文章推荐
- 线程上下文切换和进程上下文切换的区别
- 进程,线程,协程,并行与并发区别, 上下文
- 线程上下文切换和进程上下文切换的区别
- 线程上下文切换和进程上下文切换的区别
- 线程上下文切换和进程上下文切换的区别
- 线程上下文切换和进程上下文切换的区别
- Java知识点总结篇:Java的内存模型、线程安全、进程和线程的区别
- Android 进程和线程模型 .
- 进程和线程的区别?
- 【操作系统】线程与进程有何区别?
- 进程与线程的联系与区别
- 进程与线程的区别
- Introduction to processes and threads(线程与进程的区别)
- 进程和线程关系及区别
- 进程与线程的区别?
- 进程与线程的区别,线程安全”怎么理解?(2012.5.6百度实习生笔试)
- 进程与线程的区别
- 进程与线程及其区别
- 进程与线程的区别
- 线程和进程的区别