- 7
- 0
- 约 77页
- 2016-10-26 发布于广东
- 举报
HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId ); 2.终止线程 (1)ExitThread函数 ExitThread函数用于结束线程。 语法: VOID ExitThread( DWORD dwExitCode ); (2)TerminateThread函数 TerminateThread函数用于强行终止线程。 语法: BOOL TerminateThread( HANDLE hThread, DWORD dwExitCode ); 10.3.3 线程同步 1.线程同步的重要性 当应用程序中存在多个线程序时,如果这些线程都访问某一公共的资源,某一个全局变量可能会出现意想不到的结果。 2.互斥实现线程同步 互斥对象属于系统内核对象,它能够使线程拥有对某个资源的绝对访问权。 互斥对象的使用方式如下。 (1)当互斥对象的线程ID为0时,表示互 斥对象不被任何线程所拥有,此时,系统会发出该互斥对象的通知信号。 (2)当互斥对象的线程ID不为0时,表示当前有线程拥有该互斥对象。 在程序中,可以通过CreateMutex函数创建一个互斥对象。 如果函数执行成功,则返回值是互斥对象的句柄。 否则,返回值为NULL。 语法: HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes,BOOL bInitialOwner, LPCTSTR lpName ); 3.临界区实现线程同步 临界区又称为关键代码段,指的是一小段代码,在代码执行前,它需要独占某些资源。 为了使用临界区,需要定义一个CRITICAL_SECTION类型的变量,然后调用InitializeCriticalSection函数对变量进行初始化,该函数语法如下: VOID InitializeCriticalSection( LPCRITICAL_SECTION lpCriticalSection ); EnterCriticalSection函数的作用是查看CRITICAL_SECTION结构成员变量的值,判断是否有线程访问临界区的资源。 EnterCriticalSection函数语法如下: VOID EnterCriticalSection( LPCRITICAL_SECTION lpCriticalSection ); 4.事件实现线程同步 事件对象包含有引用计数、事件类型、事件的通知状态等信息。 事件对象主要分为两类,人工重置事件对象和自动重置事件对象。 Windows系统提供了CreateEvent函数用于创建事件对象,该函数语法如下: HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCTSTR lpName ); LPVOID lpReserved //系统所保留 { switch(ul_reason_for_call) { case DLL_PROCESS_ATTACH: //进程被调用 case DLL_THREAD_ATTACH: //线程被调用 case DLL_THREAD_DETACH: //进程被停止 case DLL_PROCESS_DETACH: //线程被停止 return TRUE; } } 2.动态链接库和静态链接库 (1)静态链接库 静态链接库的英文全称是Static Link Library,它经常是一些相对小的,比较稳定的函数库。 (2)动态链接库 动态链接库的英文全称是Dynamic Link Library,简称DLL。 动态链接库可以在需要的时候动态加载到内存
您可能关注的文档
- 新Visual Basic软件开发技术 教学课件 李洛 罗佳 吴绍根 陈建潮 VB多媒体编程 第3章.ppt
- 新Visual Basic软件开发技术 教学课件 李洛 罗佳 吴绍根 陈建潮 高级界面设计技术 第2章.ppt
- 新Visual Basic软件开发技术 教学课件 李洛 罗佳 吴绍根 陈建潮 使用注册表 第4章.ppt
- 新Visual Basic软件开发技术 教学课件 李洛 罗佳 吴绍根 陈建潮 网络编程 第5章.ppt
- 新Visual Basic软件开发技术 教学课件 李洛 罗佳 吴绍根 陈建潮 在VB中使用Win32 API函数 第1章.ppt
- 新Visual Basic语言程序设计及实验教程 电子教案 周建丽 第1章 Visual Basic语言导引.ppt
- 新Visual Basic语言程序设计及实验教程 电子教案 周建丽 第2章 Visual Basic语言基础.ppt
- 新Visual Basic语言程序设计及实验教程 电子教案 周建丽 第3章 顺序结构程序设计.ppt
- 新Visual Basic语言程序设计及实验教程 电子教案 周建丽 第4章 选择结构程序设计.ppt
- 新Visual Basic语言程序设计及实验教程 电子教案 周建丽 第5章 循环结构程序设计.ppt
原创力文档

文档评论(0)