6.4 线程的结构
我们已经讨论了进程以及线程同它所属进程的关系。图6-2显示了包含多个线程的进程结构。进程通过上下文和属性区别于系统中其他进程,线程也可以通过上下文和属性区别于其他对等线程。进程有代码段、数据段和栈段。线程同进程共享代码段和栈段。进程的栈通常从内存的高地址开始,向下增长。线程栈以下一个线程栈的开始位置为边界。可以看到,线程栈包含其局部变量。进程的全局变量位于数据段中。Thread A和Thread B的上下文包括线程id、状态、优先级、处理器寄存器等。程序计数器(PC)指向代码段中函数task1()和task2()中下一条可执行指令。栈指针(SP)指向它们各自的栈的顶部。线程属性对象同一个线程或一组线程相关联。在本例中,两个线程使用相同的线程属性。
|
| (点击查看大图)图6-2 |