// windows_39_Thread_Mutex.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "windows.h"//互斥排队等候问题,谁先等候谁先执行HANDLE g_hMutex = NULL;DWORD WINAPI ThreadProc1( LPVOID pParam ){while (1){//等候互斥量WaitForSingleObject( g_hMutex ,INFINITE);printf( "ThreadProc1--------\n" );Sleep( 500 );//释放互斥量ReleaseMutex( g_hMutex );}return 0;}DWORD WINAPI ThreadProc2( LPVOID pParam ){while (1){//等候互斥量WaitForSingleObject( g_hMutex,INFINITE );printf( "-------------ThreadProc2\n" );Sleep( 500 );//释放互斥量ReleaseMutex( g_hMutex );}return 0;}DWORD WINAPI ThreadProc3( LPVOID pParam ){while (1){//等候互斥量WaitForSingleObject( g_hMutex,INFINITE );printf( "-------ThreadProc3-----------\n" );Sleep( 500 );//释放互斥量ReleaseMutex( g_hMutex );}return 0;}void Create( ){DWORD nThreadID = 0;HANDLE hThread[3] = { NULL };hThread[0] = CreateThread( NULL, 0, ThreadProc1, NULL, 0, &nThreadID );hThread[1] = CreateThread( NULL, 0, ThreadProc2 , NULL, 0, &nThreadID );hThread[2] = CreateThread( NULL, 0, ThreadProc3 , NULL, 0, &nThreadID );}int _tmain(int argc, _TCHAR* argv[]){//创建互斥g_hMutex = CreateMutex( NULL, FALSE, NULL );Create( );getchar( );//关闭互斥CloseHandle( g_hMutex );return 0;}
40 windows_40_Thread_Mutex 线程 - 互斥
原文:http://www.cnblogs.com/nfking/p/5574172.html