- 2
- 0
- 约4.43千字
- 约 40页
- 2018-02-14 发布于浙江
- 举报
[理学]多核程序设计04第四章 Windows多线程编程及调试
Windows多线程编程及调优 Win32 API是Windows操作系统为内核以及应用程序之间提供的接口,将内核提供的功能进行函数封装,应用程序通过调用相关的函数获得相应的系统功能。 MFC是微软基础函数类库(Microsoft Foundation Classes),由微软提供的,用类库的方式将Win32 API 进行封装, 以类的方式提供给开发者。 .NET?Framework?由两部分构成:公共语言运行库(Common?Language?Runtime?,CLR)和Framework类库(Framework?Class?Library?,FCL)。.NET 基础类库的System.Threading命名空间提供了大量的类和接口来支持多线程。所有与多线程机制相关的类都存放在System.Threading命名空间中。 使用Win32线程API Win32函数库中提供了操作多线程的函数,包括创建线程、管理线程、终止线程、线程同步等接口。 线程函数: DWORD WINAPI ThreadFunc (LPVOID lpvThreadParm) 线程创建 HANDLE CreateThread ( LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId ); CreateThread不会执行C运行时数据块, 因此在C运行时库的应用程序中,不能使CreateThread创建线程,微软提供了另外的创建方法:创建线程用process.h头文件中声明的c执行时期链接库函数 _beginthread函数, uintptr_t _beginthread( void( *start_address )( void * ), unsigned stack_size, void *arglist ); 使用Win32线程API 线程管理 控制和操作线程(管理),Windows允许对创建的线程进行挂起或运行操作,进入相应的状态。线程中的每个线程都有挂起计数器,当挂起计数器为0时,线程被执行,当挂起计数器值大于0时,调度器不去调度该线程 。 不能够直接访问现成的挂起计数器,可以通过调用API函数来改变它的值,两个函数: DWORD SuspendThread(HANDLE hThread) :挂起操作,如果函数执行成功,线程中止执行,调用一次,线程挂起计数器值增1 ; DWORD ResumeThread(HANDLE hThread) :用于结束线程的挂起状态操作,每次调用该函数,线程挂起计数器值减1,若挂起计数器值为0,则不会再减。 线程等待 Win32 API提供了一组能使线程阻塞其自身执行的等待函数WaitForSingleObject、WaitForMultipleObject。这些函数在其参数中的一个或多个同步对象中产生了信号,或者在超过规定的时间才返回。在等待函数未返回时,线程处于等待状态,线程不消耗CPU时间. 线程终结 线程函数返回时,线程自动终止,如果需要在线程的执行过程中终止则可调用ExitThread函数。如果在线程之外终止线程,可以调用TerminateThread函数。 线程同步的实现 在Win32中,同步的机制主要有以下几种: 全局变量 事件(Event) 临界区(Critical section) 互斥量(Mutex) 信号量(Semaphore) 全局变量 进程中的所有线程都可以访问所有的全局变量,全局变量成为win32多线程通信的最简单方式 事件(Event) 事件(Event) Win32提供的最灵活的线程间同步方式. 事件存在两种状态: 激发状态; 未激发状态. 创建事件函数原型: HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCTSTR lpName ); 事件(Event) 事件设置分类: 手动设置:这种对象只能用程序来手动设置,在需要该事件或者事件发生时,采用SetEvent及ResetEvent来进行设置。 SetEvent只有一个参数,该参数指定了时间对象的句柄值,若事件成功激发,返回TRUE; ResetEvent函数将事件对象恢复到最初的
您可能关注的文档
- [理学]6-8二重积分2.ppt
- [理学]52 二次型与对称矩阵的标准形08年.ppt
- [理学]6-波函数 薛定谔方程 一维无限深势阱.ppt
- [理学]54_变压器双层次导学方案.doc
- [理学]61 定积分的概念和性质.ppt
- [理学]6 连接件的实用计算与圆轴扭转-第二节等 -2012.ppt
- [理学]8、实验动物福利.ppt
- [理学]8_1_3-84习题课.ppt
- [理学]4 测试与分析技术.ppt
- [理学]74 空间曲线及其方程学生版.ppt
- 2026及未来5年中国三溴氧磷市场调查研究及行业投资潜力预测报告.docx
- 2026及未来5年中国软磁铁氧体磁芯行业市场全景调研及投资规划建议报告.docx
- 2026及未来5年中国导热油市场竞争态势及投资战略规划研究报告.docx
- 2026及未来5年中国牙刷行业市场全景评估及发展趋势研究预测报告.docx
- 2026及未来5年中国热缩材料行业投资分析及发展战略研究咨询报告.docx
- 2026及未来5年中国模架砂轮市场调查、数据监测研究报告.docx
- 2026及未来5年中国二色冰淇淋市场调查、数据监测研究报告.docx
- 2026及未来5年中国角向磨光机砂轮市场调查、数据监测研究报告.docx
- 2026及未来5年中国灭菌手术刀片市场调查、数据监测研究报告.docx
- 2026及未来5年中国氟塑料制品行业发展监测及投资战略规划研究报告.docx
最近下载
- 16S401 管道和设备保温、防结露及电伴热.pdf VIP
- 《YY/T 0337-2025麻醉和呼吸设备 气管插管和接头》.pdf
- 注册消防工程师课件获取途径.pptx VIP
- 2025-2026学年大象版(2024)小学科学一年级上册教学计划及进度表.docx
- 22J603-1 铝合金门窗(建筑图集).docx
- 移动端推荐框产品需求文档.docx VIP
- eVTOL低空经济低空无人机消防部署AI识别项目设计方案【185页WORD】.docx VIP
- 2023年大学生环保知识竞赛题.docx VIP
- 2021建筑幕墙安全性评估技术标准.docx
- 英语人教版八年级下册Unit 6 教案.pdf VIP
原创力文档

文档评论(0)