码迷,mamicode.com
首页 > 编程语言 > 详细

40 windows_40_Thread_Mutex 线程 - 互斥

时间:2016-06-10 21:36:14      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

windows_40_Thread_Mutex 线程 - 互斥

  1. // windows_39_Thread_Mutex.cpp : 定义控制台应用程序的入口点。
  2. //
  3. #include "stdafx.h"
  4. #include "windows.h"
  5. //互斥排队等候问题,谁先等候谁先执行
  6. HANDLE g_hMutex = NULL;
  7. DWORD WINAPI ThreadProc1( LPVOID pParam )
  8. {
  9. while (1)
  10. {
  11. //等候互斥量
  12. WaitForSingleObject( g_hMutex ,INFINITE);
  13. printf( "ThreadProc1--------\n" );
  14. Sleep( 500 );
  15. //释放互斥量
  16. ReleaseMutex( g_hMutex );
  17. }
  18. return 0;
  19. }
  20. DWORD WINAPI ThreadProc2( LPVOID pParam )
  21. {
  22. while (1)
  23. {
  24. //等候互斥量
  25. WaitForSingleObject( g_hMutex,INFINITE );
  26. printf( "-------------ThreadProc2\n" );
  27. Sleep( 500 );
  28. //释放互斥量
  29. ReleaseMutex( g_hMutex );
  30. }
  31. return 0;
  32. }
  33. DWORD WINAPI ThreadProc3( LPVOID pParam )
  34. {
  35. while (1)
  36. {
  37. //等候互斥量
  38. WaitForSingleObject( g_hMutex,INFINITE );
  39. printf( "-------ThreadProc3-----------\n" );
  40. Sleep( 500 );
  41. //释放互斥量
  42. ReleaseMutex( g_hMutex );
  43. }
  44. return 0;
  45. }
  46. void Create( )
  47. {
  48. DWORD nThreadID = 0;
  49. HANDLE hThread[3] = { NULL };
  50. hThread[0] = CreateThread( NULL, 0, ThreadProc1, NULL, 0, &nThreadID );
  51. hThread[1] = CreateThread( NULL, 0, ThreadProc2 , NULL, 0, &nThreadID );
  52. hThread[2] = CreateThread( NULL, 0, ThreadProc3 , NULL, 0, &nThreadID );
  53. }
  54. int _tmain(int argc, _TCHAR* argv[])
  55. {
  56. //创建互斥
  57. g_hMutex = CreateMutex( NULL, FALSE, NULL );
  58. Create( );
  59. getchar( );
  60. //关闭互斥
  61. CloseHandle( g_hMutex );
  62. return 0;
  63. }





40 windows_40_Thread_Mutex 线程 - 互斥

标签:

原文地址:http://www.cnblogs.com/nfking/p/5574172.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!