多线程程序开发与单线程开发相比,需要考虑的问题更多,难度更大,稍不留神就容易出现内存泄漏,要不就是访问冲突。
内存泄漏,还可以使用内存泄漏检测工具进行检测,使用visual leak detector是不错的选择,方便易用,网上有很多例子说明用法,说法基本一致。
首先,下载visual leak detector,然后进行安装,安装成功后,即可使用。需要说明的是,对于控制台程序,直接以调试状态运行程序即可在输出窗口中检查结果,而对于对话框程序,则需要将主对话框关闭后,才能在输出窗口中检查结果。另外,在VS2010中不需要将visual leak detector的各个dll拷贝到VS2010中,而2008、2005需要,拷贝方法网上查,使用visual leak detector方法,只需要在stdafx.h中添加 #include <vld.h>。
访问冲突,对于多线程程序,在创建的新线程中,涉及的公共参数传递到新线程中,可以在新线程中创建新的变量,接受公共参数内容,并在新线程中,只使用新创建的局部变量,这样使用的是局部变量,不容易出现访问冲突。