InitializeCriticalSection

#include <stdio.h>
#include <windows.h>

DWORD WINAPI ThreadProc1(LPVOID lpParameter);
DWORD WINAPI ThreadProc2(LPVOID lpParameter);

int sum=100;
CRITICAL_SECTION  cs;

int main (void)
{
	HANDLE hThread[2]={0};
	hThread[0]=CreateThread(NULL,NULL,ThreadProc1,NULL,NULL,NULL);
	hThread[1]=CreateThread(NULL,NULL,ThreadProc2,NULL,NULL,NULL);
	CloseHandle(hThread[0]);
	CloseHandle(hThread[1]);

	InitializeCriticalSection(&cs);   //初始化临界区对象
	getchar();
	DeleteCriticalSection(&cs);       //删除临界区对象
	getchar();

	return 0;
}

DWORD WINAPI ThreadProc1( LPVOID lpParameter )
{
	while(sum>0)
	{
		Sleep(1);
		EnterCriticalSection(&cs);        //堵塞临界区
		Sleep(1);
		printf("ThreadProc1 %d\n",sum--);
		LeaveCriticalSection(&cs);        //释放临界区
		Sleep(1);
	}
	return true;
}

DWORD WINAPI ThreadProc2( LPVOID lpParameter )
{
	while(sum>0)
	{
		Sleep(1);
		EnterCriticalSection(&cs);          //堵塞临界区
		Sleep(1);
		printf("ThreadProc2 %d\n",sum--);
		LeaveCriticalSection(&cs);          //释放临界区
		Sleep(1);
	}
	return true;
}
/*
2015年5月5日 20:57:05
程序执行结果如下:
ThreadProc2 100
ThreadProc1 99
ThreadProc2 98
ThreadProc1 97
ThreadProc2 96
ThreadProc1 95
ThreadProc2 94
ThreadProc1 93
ThreadProc2 92
ThreadProc1 91
ThreadProc2 90
ThreadProc1 89
ThreadProc2 88
ThreadProc1 87
ThreadProc2 86
ThreadProc1 85
ThreadProc2 84
ThreadProc1 83
ThreadProc2 82
ThreadProc1 81
ThreadProc2 80
ThreadProc1 79
ThreadProc2 78
ThreadProc1 77
ThreadProc2 76
ThreadProc1 75
ThreadProc2 74
ThreadProc1 73
ThreadProc2 72
ThreadProc1 71
ThreadProc2 70
ThreadProc1 69
ThreadProc2 68
ThreadProc1 67
ThreadProc2 66
ThreadProc1 65
ThreadProc2 64
ThreadProc1 63
ThreadProc2 62
ThreadProc1 61
ThreadProc2 60
ThreadProc1 59
ThreadProc2 58
ThreadProc1 57
ThreadProc2 56
ThreadProc1 55
ThreadProc2 54
ThreadProc1 53
ThreadProc2 52
ThreadProc1 51
ThreadProc2 50
ThreadProc1 49
ThreadProc2 48
ThreadProc1 47
ThreadProc2 46
ThreadProc1 45
ThreadProc2 44
ThreadProc1 43
ThreadProc2 42
ThreadProc1 41
ThreadProc2 40
ThreadProc1 39
ThreadProc2 38
ThreadProc1 37
ThreadProc2 36
ThreadProc1 35
ThreadProc2 34
ThreadProc1 33
ThreadProc2 32
ThreadProc1 31
ThreadProc2 30
ThreadProc1 29
ThreadProc2 28
ThreadProc1 27
ThreadProc2 26
ThreadProc1 25
ThreadProc2 24
ThreadProc1 23
ThreadProc2 22
ThreadProc1 21
ThreadProc2 20
ThreadProc1 19
ThreadProc2 18
ThreadProc1 17
ThreadProc2 16
ThreadProc1 15
ThreadProc2 14
ThreadProc1 13
ThreadProc2 12
ThreadProc1 11
ThreadProc2 10
ThreadProc1 9
ThreadProc2 8
ThreadProc1 7
ThreadProc2 6
ThreadProc1 5
ThreadProc2 4
ThreadProc1 3
ThreadProc2 2
ThreadProc1 1


*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值