多核试验.pdf
文本预览下载声明
《多核程序设计》实验指导书
大连东软信息学院
目 录
实验一 :Windows*Threads多线程编程 - 2 -
模块一:基础练习 - 5 -
模块二:临界区实验 - 9 -
模块三:事件实验 - 12 -
模块四:信号量实验 - 16 -
实验二 :OpenMP多线程编程 - 21 -
模块一:基础练习 - 23 -
模块二:数值积分计算Pi值 - 26 -
模块三:Monte Carlo计算Pi值 - 28 -
实验三:多线程编程方法学 - 31 -
模块一: Intel VTune和Intel Thread Checker 的使用 - 32 -
模块二: 多线程编程综合练习 - 41 -
实验四 :多线程编程综合实验 - 49 -
- 1 -
实验一 :Windows*Threads多线程编程
本实验分为四个模块;分别为基础练习,临界区实验,事件实验,信号量实
验。通过本次实验逐步熟悉和掌握 Win32 API 多线程编程的语法结构、基本思路
和方法。理解 API 之间的调用关系,参数的含义。
【实验学时】
8 学时
【实验目的】
掌握Microsoft Visual Studio 编写编译Win32 API多线程程序的方法。
掌握Win32 API编写多线程程序的语法。
掌握Win32 API编写多线程程序的思路。
掌握Win32 多线程API 的应用。
能解决简单的数据竞争。
【实验环境】
Windows XP 系统
Microsoft Visual Studio 2005
【相关知识】
内核对象的概念:由操作系统内核分配的,只能由内核访问的一个内存
块,用来供系统和应用程序使用和管理各种系统资源。
Windows 多线程 API 的基本管理
线程的创建:
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
DWORD dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId);
- 2 -
线程的终止:
VOID ExitThread(DWORD dwExitCode)
BOOL CloseHandle (HANDLE hObject)
线程的挂起与恢复:
DWORD SuspendThread(HANDLE hThread)
DWORD ResumeThread(HANDLE hThread)
线程间的等待:
DWORD WaitForSingleObject(
HANDLE hHandle,
DWORD dwMilliseconds);
DWORD WaitForMultipleObjects (
DWORD nCount,
CONST HANDLE *lpHandles,
BOOL fWaitAll,
DWORD dwMilliseconds);
线程间的同步
与临界区相关的 API :
void WIN
显示全部