视频地址:
http://player.bilibili.com/player.html?aid=31289365&bvid=BV1iW411d7hd&cid=114818859&page=24
http://player.bilibili.com/player.html?aid=31289365&bvid=BV1iW411d7hd&cid=225145634&page=25
课件地址:
本章对应于书中的12.4, 12.5和12.7。
我们以下面的程序为例来说明多线程共享变量的问题
一组并发的线程运行在一个进程上下文中,每个线程具有自己的线程上下文,包括TID、栈、栈指针、程序计数器、条件码和通用目的寄存器值,这就说明每个进程可以通过自己的程序计数器运行自己的代码,而通过栈可以保存自己的局部变量,这些栈是保存在虚拟地址空间中的栈区域。而进程的其余部分在所有线程中是共享的,包括整个用户虚拟地址空间,其中有代码、读写数据、堆、共享代码库代码数据区域、打开的文件描述符和信号处理程序等等。