欢迎来到天天文库
浏览记录
ID:61462382
大小:23.50 KB
页数:7页
时间:2021-02-02
《Windows 的多线程程序设计初步.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Windows的多线程程序设计初步2005-09-3009:23作者:Amoon100出处:blog责任编辑:方舟 一般情况下多线程编程多采用MFC类库实现,那么如果不使用MFC如何进行多线程程序设计呢?本文将就这个问题进行讨论: 微软在WindowsAPI中提供了建立新的线程的函数CreateThread,它的语法如下:hThread=CreateThread(&security_attributes,dwStackSize,ThreadProc,pParam,dwFlags,&idThread); 第一个参数是指向SECURITY_ATTR
2、IBUTES型态的结构的指针。在Windows98中忽略该参数。在WindowsNT中,它被设为NULL。第二个参数是用于新线程的初始堆栈大小,默认值为0。在任何情况下,Windows根据需要动态延长堆栈的大小。 CreateThread的第三个参数是指向线程函数的指标。函数名称没有限制,但是必须以下列形式声明:DWORDWINAPIThreadProc(PVOIDpParam); CreateThread的第四个参数为传递给ThreadProc的参数。这样主线程和从属线程就可以共享数据。 CreateThread的第五个参数通常为0,但当建
3、立的线程不马上执行时为旗标CREATE_SUSPENDED。线程将暂停直到呼叫ResumeThread来恢复线程的执行为止。第六个参数是一个指标,指向接受执行绪ID值的变量。 大多数Windows程序写作者喜欢用在PROCESS.H表头文件中声明的C执行时期链接库函数_beginthread。它的语法如下:hThread=_beginthread(ThreadProc,uiStackSize,pParam); 它更简单,对于大多数应用程序很完美,这个线程函数的语法为:void__cdeclThreadProc(void*pParam); 在建立
4、多线程的Windows程序时,需要在「ProjectSettings」对话框中做一些修改。选择「C/C++」页面标签,然后在「Category」下拉式清单方块中选择「CodeGeneration」。在「UseRun-TimeLibrary」下拉式清单方块中,可以看到用于「Release」设定的「Single-Threaded」和用于Debug设定的「DebugSingle-Threaded」。将这些分别改为「Multithreaded」和「DebugMultithreaded」。这将把编译器旗标改为/MT,它是编译器在编译多线程的应用程序所需要的。
5、 第一个demo./*********************************************************deom1---四个线程同时写一个文件(没有参数)*************************************************************/#include#include/*_beginthread,_endthread*/#include#includeusingnamespacestd;ofstre
6、amout("out.txt");voidThreadFunc1(PVOIDparam){ while(1) { Sleep(10); out<<"Thiswasdrawbythreadl"<7、8、 return0;}//demo1end----------------------------------
7、8、 return0;}//demo1end----------------------------------
8、 return0;}//demo1end----------------------------------
此文档下载收益归作者所有