多线程编程的几个关键点

1.静态变量不管是全局的还是局部的,都被线程共享,因为它们位于进程的数据内存空间(这一点在形式上类似于类的静态数据成员)。

2.而在函数中的自动变量总是局部的,因为它们占据堆栈空间,而每个线程都有它自己的堆栈,所以对每个线程而言,它们是独立的。(外加一句932页内容:静态变量是所有线程共享的。另外还有一种情况TLS,后续会讲到)

3.为了帮助协调线程活动,操作系统需要各种形式的同步。其中有一种叫信号灯(Semaphore),能让程序员在代码的某一特定点上,暂停线程的执行直到另一个线程发信号让它继续。

4.跟信号灯相似的还有临界区(Critical Section),它们指的是不能被中断的代码段。

5.一些变量可能要被调整为全局变量,例如《Windows程序设计》第930页的RNDRCTMT程序将将以下变量作为了全局变量:

HWND hwnd ;
int  cxClient, cyClient ;

 

posted on 2013-06-07 10:55  毋忆典藏  阅读(152)  评论(0编辑  收藏  举报