函数:WaitForSingleObject(hThread,INFINITE);
//因为线程的句柄在线程运行时是未触发的,线程结束运行,句柄处于触发状态。所以可以用WaitForSingleObject()来等待一个线程结束运行。
函数:CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCTSTR lpName )
当 bManualReset 设置为true时:一旦该Event被设置为有信号,则它一直会等到ResetEvent()API被调用时才会恢复为无信号.
当bManualReset 设置为false时:Event被设置为有信号,则当有一个线程或多个线程在等待时, 该Event就会自动复位,变成无信号.
函数:SetEvent(hEvent)
//设置事件的状态为有标记,释放任意等待线程
互斥变量
1、函数:CreateMutex
//创建一个互斥变量,需要使用手动重置为无信号状态,初始化时有信号状态。
2、函数:OpenMutex(MUTEX_ALL_ACCESS,false,SYNCHRONIZING_MUTEX_NAME)
功能:为现有的一个已命名互斥体对象创建一个新句柄
函数:ReleaseMutex(hMutex)
功能:释放互斥变量,使其它在等待的进程或线程使用,如果不进行释放的话,其它进程或线程无法运行
3、函数:CreateFileMapping
功能:创建一个想共享的文件数据句柄。
4、函数:OpenFileMapping()
功能:函数在一个进程里打开共享文件的名称,这样就可以实现不同的进程共享数据
5、函数:MapViewOfFile
功能:将内存映射文件映射到进程的虚拟地址中;也可以认为是获取共享的内存地址
6、函数:UnmapViewOfFile
功能:完成从进程的地址空间撤消文件数据的映射,释放共享文件的指针;