本文摘自《深入理解计算机系统》 并发编程章节。
对于多线程编程最棘手的部分为共享变量的并发访问,那么就需要了解在编程中那些为共享变量。这就涉及到线程存储模型。
每个线程都有它自己的线程上下文.线程上下文包括:
线程ID,栈,栈指针,程序计数器,条件码和通用寄存器的值。
多个线程在进程中共享如下部分:
虚拟地址空间,只读代码块,读、写数据,堆,打开的文件集合。
寄存器在线程中不共享,虚拟存储器在线程中共享。
在编写多线程C语言程序时:
1、全局变量。 全局变量在运行时,任何线程都可以引用全局变量。
2、本地局部变量。每一个线程的栈都包含自己独立的本地局部变量。
3、本地静态变量。每一个线程都可以共享本地静态变量。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2025-01-02 13:37:41