window下多线程编程实验.pdf

window下多线程编程实验.pdf

ID:52242342

大小:661.36 KB

页数:8页

时间:2020-03-25

window下多线程编程实验.pdf_第1页
window下多线程编程实验.pdf_第2页
window下多线程编程实验.pdf_第3页
window下多线程编程实验.pdf_第4页
window下多线程编程实验.pdf_第5页
资源描述:

《window下多线程编程实验.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、window下多线程编程实验实验时间地点实验日期时间地点2012-05-02周三晚6:40—10:00教三楼3062012-05-03周四晚6:40—10:00教三楼3062012-05-04周五晚6:40—10:00教三楼306实验报告(1)按照“网络教学平台”上模板来写(2)重点写自己的实验过程、遇到的问题及如何解决、自己的收获(3)在“网络教学平台”上提交word版实验报告和zip版项目文件包(4)实验报告提交截止时间:2012-05-14周一晚24:00实验目的(1)初步学习、理解、掌握wind

2、ow下多线程程序开发方法(2)初步学习、了解多线程之间的同步方法实验结果及检查(1)基于CreateThread实现多线程,并实现线程的恢复、暂停、终止等。(2)基于Beginthread实现多线程,并实现线程的简单同步。实验环境VC6.0SP6英文版如果没有,大家通过网络学堂可以下载,直接安装即可,注意不要重启电脑。实验原理在Windows平台下可以通过Windows的线程库来实现多线程编程,通过Windows操作系统为内核以及应用程序之间提供的接口API,应用程序通过调用相关的函数获得相应的系统功能

3、。Win32函数库中提供了操作多线程的函数,包括创建线程、管理线程、终止线程、线程同步等接口。(一)创建线程,具体来说,主要有两种方法(1)通过线程函数CreateThreadDWORDWINAPIThreadFunc(LPVOIDlpvThreadParm);线程创建HANDLECreateThread(LPSECURITY_ATTRIBUTESlpThreadAttributes,SIZE_TdwStackSize,LPTHREAD_START_ROUTINElpStartAddress,LPVOI

4、DlpParameter,DWORDdwCreationFlags,LPDWORDlpThreadId);第一个参数lpThreadAtt,是一个指向SECURITY-ATTRIBUTES结构的指针,该结构制定了线程的安全属性,缺省为NULL。第二个参数dwStackSize,是栈的大小,一般设置为0。第三个参数LPTHREAD_START_ROUTINE是新线程开始执行时,线程函数的入口地址。它必须是将要被新线程执行的函数地址,不能为NULL。lpStartAddress参数指定了线程函数的地址,新建

5、线程将从此地址开始执行,直到return语句返回,线程运行结束,把控制权交给操作系统。第四个参数lpParameter,是线程函数定义的参数。可以通过这个参数传送值,包括指针或者NULL。第五个参数dwCreationFlags,控制线程创建的附加标志,可以设置两种值。0表示线程在被创建后就会立即开始执行;如果该参数为CREATE_SUSPENDED,则系统产生线程后,该线程处于挂起状态,并不马上执行,直至函数ResumeThread被调用;第六个参数lpThreadID,为指向32位变量的指针,该参数

6、接受所创建线程的ID号。如果创建成功则返回线程的句柄,否则返回NULL。(2)方法2通过_beginthread创建线程还可以用process.h头文件中声明的C执行时期链接库函数_beginthread。在回调入口函数之前进行一些线程相关的CRT的初始化操作语法:hThread=_beginthread(void(__cdecl*start_address)(void*),unsignedstack_size,void*arglist);(二)线程间通信线程之间通信的两个基本问题是互斥和同步。线程同步

7、是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应该等待,直到消息到达时才被唤醒。线程互斥是指对于共享资源,在各线程访问时的排它性,线程互斥是一种特殊的线程同步。在window下可以通过以下五种方法实现Win32线程同步全局变量事件(Event)临界区(Criticalsection)互斥量(Mutex)信号量(Semaphore)本实验中只用到事件Event,其他大家有兴趣可以进一步自己查阅资料实验。实验步骤(一)VC6.0开发环境中对项目

8、Project配置(1)新建一个项目目录在D盘以自己的“学号_姓名_work”新建一个目录,作为本次项目目录。注意:用数字和拼音,不要用中文(2)新建一个win32Consoleproject项目名称任意,不要有中文。Location选择(1)中的目录。选择第一项,空项目(3)新建一个C++源文件(4)对项目进行配置,加入多线程支持Project下的Setting子菜单C/C++选项单下的CodeGeneration项改为DebugMult

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。