进程中调用CreateMutex 分类: VC++ 2013-10-09 09:13 599人阅读 评论(0) 收藏
2013-10-09 09:13
465 查看
// TestStorage.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <Windows.h>
#include <process.h>
//#define MUTEX_DBG
UINT WINAPI Thread1(LPVOID para)
{
#ifdef MUTEX_DBG
HANDLE* phMutex = (HANDLE*)para;
WaitForSingleObject(*phMutex,INFINITE);
#endif
printf("Enter Thread1/n");
printf("I'm sleeping……/n");
Sleep(1000);
printf("Leave Thread1/n");
#ifdef MUTEX_DBG
ReleaseMutex(*phMutex);
#endif
return 0;
}
UINT WINAPI Thread2(LPVOID para)
{
#ifdef MUTEX_DBG
HANDLE* phMutex = (HANDLE*)para;
WaitForSingleObject(*phMutex,INFINITE);
#endif
printf("Enter Thread2/n");
printf("I'm sleeping……/n");
Sleep(1000);
printf("Leave Thread2/n");
#ifdef MUTEX_DBG
ReleaseMutex(*phMutex);
#endif
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE hMutex = NULL;
#ifdef MUTEX_DBG
hMutex = CreateMutex(NULL,FALSE,NULL);
#endif
HANDLE hThread1 = (HANDLE)::_beginthreadex(NULL,0,Thread1,&hMutex,0,NULL);
HANDLE hThread2 = (HANDLE)::_beginthreadex(NULL,0,Thread2,&hMutex,0,NULL);
Sleep(4000);
if(hThread1)
CloseHandle( hThread1 );
if(hThread2)
CloseHandle( hThread2 );
return 0;
}
//
#include "stdafx.h"
#include <Windows.h>
#include <process.h>
//#define MUTEX_DBG
UINT WINAPI Thread1(LPVOID para)
{
#ifdef MUTEX_DBG
HANDLE* phMutex = (HANDLE*)para;
WaitForSingleObject(*phMutex,INFINITE);
#endif
printf("Enter Thread1/n");
printf("I'm sleeping……/n");
Sleep(1000);
printf("Leave Thread1/n");
#ifdef MUTEX_DBG
ReleaseMutex(*phMutex);
#endif
return 0;
}
UINT WINAPI Thread2(LPVOID para)
{
#ifdef MUTEX_DBG
HANDLE* phMutex = (HANDLE*)para;
WaitForSingleObject(*phMutex,INFINITE);
#endif
printf("Enter Thread2/n");
printf("I'm sleeping……/n");
Sleep(1000);
printf("Leave Thread2/n");
#ifdef MUTEX_DBG
ReleaseMutex(*phMutex);
#endif
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE hMutex = NULL;
#ifdef MUTEX_DBG
hMutex = CreateMutex(NULL,FALSE,NULL);
#endif
HANDLE hThread1 = (HANDLE)::_beginthreadex(NULL,0,Thread1,&hMutex,0,NULL);
HANDLE hThread2 = (HANDLE)::_beginthreadex(NULL,0,Thread2,&hMutex,0,NULL);
Sleep(4000);
if(hThread1)
CloseHandle( hThread1 );
if(hThread2)
CloseHandle( hThread2 );
return 0;
}
相关文章推荐
- 事件和进程间的数据交换 . 分类: VC++ 2013-10-09 11:47 585人阅读 评论(0) 收藏
- 线程中CreateEvent和SetEvent及WaitForSingleObject的用法 分类: VC++ 2013-10-09 09:00 707人阅读 评论(0) 收藏
- windows进程间通信 . 分类: VC++ 2013-10-09 16:27 567人阅读 评论(0) 收藏
- 四种进程或线程同步互斥的控制方法 分类: VC++ 2013-09-29 08:48 507人阅读 评论(0) 收藏
- 讨论MMU 分类: VC++ 2013-10-09 09:16 540人阅读 评论(0) 收藏
- 贪婪 vs 不贪婪 分类: 正则表达式 2013-10-09 15:00 290人阅读 评论(0) 收藏
- SystemVerilog语言简介(三) 分类: 硬件开发_FPGA 2013-10-09 16:52 540人阅读 评论(0) 收藏
- Matlab调用C程序 分类: Matlab c/c++ 2015-01-06 19:18 464人阅读 评论(0) 收藏
- Linux查看进程的内存占用情况 分类: ubuntu 测试 2013-12-20 12:37 369人阅读 评论(0) 收藏
- CWnd *和HWnd转换 分类: VC++ 2013-11-08 09:28 456人阅读 评论(0) 收藏
- hi3531调用sil9024的驱动 分类: HI3531 2014-03-21 16:22 1114人阅读 评论(0) 收藏
- 【原创】《Linux高级程序设计》杨宗德著 - 进程管理与程序开发 - 信号集与屏蔽信号 分类: Linux --- 应用程序设计 2014-11-08 13:19 53人阅读 评论(0) 收藏
- 利用Windows性能计数器(PerformanceCounter)监控 分类: windows驱动程序WDM VC++ 2015-03-10 10:44 369人阅读 评论(0) 收藏
- directdraw的多画面显示rgb 分类: VC++ 2013-11-13 08:51 514人阅读 评论(0) 收藏
- AVS、MPEG-2、H264标准文档 分类: VC++ 2013-07-22 16:30 366人阅读 评论(0) 收藏
- win9x_win2k下对物理磁盘的操作 分类: VC++ 磁盘的扇区读写 2014-08-27 09:55 421人阅读 评论(0) 收藏
- iOS调用相机,相册,上传头像 分类: ios技术 2015-04-14 11:23 256人阅读 评论(0) 收藏
- CPLD/FPGA厂商概述 . 分类: 硬件开发_FPGA 2013-10-09 16:54 539人阅读 评论(0) 收藏
- 硬盘的扇面、磁道、扇区 分类: VC++ 生活百科 磁盘的扇区读写 2015-04-29 09:49 408人阅读 评论(1) 收藏
- 如何给filter添加自定义接口及调用 分类: DirectX 2014-10-24 14:47 455人阅读 评论(0) 收藏