VC中互斥的使用

来源:互联网 发布:软件实施服务合同范本 编辑:程序博客网 时间:2024/06/08 19:00
// Mutex.cpp : Defines the entry point for the console application.///*互斥的使用1 互斥的创建CreateMutex( NULL,FALSE,//创建后互斥的拥有者,TRUE当前的线程拥有这个线程, FALSE不拥有NULL );//2 等候互斥WaitForSingleObject( hMutex,INFINITE );3 释放互斥ReleaseMutex( hMutex );4 关闭互斥CloseHandle( hMutex );5 MFC - CMutex*/#include "stdafx.h"#include "windows.h"#include "conio.h"HANDLE hMutex = NULL;DWORD WINAPI ThreadProc1( LPVOID pVoid ){while( 1 ){//等候互斥WaitForSingleObject( hMutex, INFINITE );printf( "ThreadProc1-------\r\n" );Sleep( 1000 );//释放互斥ReleaseMutex( hMutex );}return 0;}DWORD WINAPI ThreadProc2( LPVOID pVoid ){while( 1 ){//等候互斥WaitForSingleObject( hMutex, INFINITE );printf( "THreadProc2----------\r\n");Sleep( 1000 );//释放互斥ReleaseMutex( hMutex );}return 0;}void Mutex(){//创建互斥hMutex = CreateMutex( NULL,FALSE, NULL );// 创建线程DWORD dwThreadID = 0;HANDLE hThread[2] = { 0 };hThread[0] = CreateThread( NULL,0, ThreadProc1, NULL, 0, &dwThreadID );hThread[1] = CreateThread( NULL,0, ThreadProc2, NULL, 0, &dwThreadID );//等候线程结束WaitForMultipleObjects( 2, hThread,TRUE, INFINITE );//关闭互斥CloseHandle( hMutex );}int main(int argc, char* argv[]){Mutex();getch();return 0;}

原创粉丝点击