example.cpp
资源名称:NQueen.rar [点击查看]
上传用户:hncsjd
上传日期:2022-07-08
资源大小:3772k
文件大小:1k
源码类别:
其他智力游戏
开发平台:
Visual C++
- #include <windows.h>
- #include <iostream.h>
- DWORD WINAPI Fun1Proc( LPVOID lpParameter );
- DWORD WINAPI Fun2Proc( LPVOID lpParameter );
- //int index = 0;
- int tickets = 100;
- HANDLE hMutex;
- void main( )
- {
- HANDLE hThread1, hThread2;
- hThread1 = CreateThread( NULL, 0, Fun1Proc, NULL, 0, NULL );
- hThread2 = CreateThread( NULL, 0, Fun2Proc, NULL, 0, NULL );
- CloseHandle( hThread1 );
- CloseHandle( hThread2 );
- hMutex = CreateMutex( NULL, FALSE, NULL );
- //TRUE代表主线程拥有互斥对象 但是主线程没有释放该对象 互斥对象谁拥有 谁释放
- //FLASE代表当前没有线程拥有这个互斥对象
- Sleep(4000);
- }
- DWORD WINAPI Fun1Proc( LPVOID lpParameter )
- {
- while( true )
- {
- WaitForSingleObject( hMutex, INFINITE );
- if( tickets>0 )
- cout <<"t1: " <<tickets-- <<endl;
- else break;
- ReleaseMutex( hMutex );
- }
- return 0;
- }
- DWORD WINAPI Fun2Proc( LPVOID lpParameter )
- {
- while( true )
- {
- WaitForSingleObject( hMutex, INFINITE );
- if( tickets>0 )
- cout <<"t2: " <<tickets-- <<endl;
- else break;
- ReleaseMutex( hMutex );
- }
- return 0;
- }