李林apue之线程的封装

来源:互联网 发布:取消mac绑定ip 编辑:程序博客网 时间:2024/05/01 01:58

1. 在头文件中定义变量,多文件引用,会在链接时出错,多次定义

因为编译多个c文件,它们都会引用这个头文件,导致这个变量被重复定义了多次,所以会报链接错误,故一般不会将变量放在头文件中.而如果加上限定词const,就不会报错.而经常使用的预编译处理,只是防止一个编译单元中,某个头文件被重复包含的问题.

2. 如果主线程不休眠,它就有可能退出,这样在新线程有机会运行之前整个进程可能已经终止了.

3. 线程的入口函数为什么使用static? 为了保持C++的封装特性,没有使用全局函数,而普通函数一般是不行的,因为普通函数的调用者是对象,不能作为函数的参数,而static的调用者可以是类,所以这里使用static,但是静态成员函数,只能访问静态成员,并且没有this指针,这个时候可以通过传递一个this指针,然后强制转换过来,通过对象去访问其它的数据或者函数.

4. 一般析构函数是虚函数,除非它不可能是基类.否则,会造成内存泄露.

0 0