用户模式下线程同步之关键段
2012-07-24 08:17
471 查看
用户模式下线程同步之关键段
//注意其中的: InitializeCriticalSection是必须的,否则会报访问异常
// mycrical_section.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
const int count=10;
int g_nSum =0;
CRITICAL_SECTION g_cs;
DWORD WINAPI FirstThread(PVOID pvParam)
{
EnterCriticalSection(&g_cs);
g_nSum =0;
for(int n=1;n<=count;n++)
{
g_nSum +=n;
}
LeaveCriticalSection(&g_cs);
return g_nSum;
}
DWORD WINAPI SecondThread(PVOID pvParam)
{
EnterCriticalSection(&g_cs);
g_nSum =0;
for(int n=1;n<=count;n++)
{
g_nSum +=n;
}
LeaveCriticalSection(&g_cs);
return g_nSum;
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
DWORD dwThreadId1=0;
DWORD dwThreadId2=0;
InitializeCriticalSection(&g_cs);
//初始化,不加会报访问异常
CreateThread(NULL,0UL,FirstThread,NULL,0,&dwThreadId1);
CreateThread(NULL,0UL,SecondThread,NULL,0,&dwThreadId2);
Sleep(50);
DeleteCriticalSection(&g_cs); //清理工作
return 0;
}
//注意其中的: InitializeCriticalSection是必须的,否则会报访问异常
// mycrical_section.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
const int count=10;
int g_nSum =0;
CRITICAL_SECTION g_cs;
DWORD WINAPI FirstThread(PVOID pvParam)
{
EnterCriticalSection(&g_cs);
g_nSum =0;
for(int n=1;n<=count;n++)
{
g_nSum +=n;
}
LeaveCriticalSection(&g_cs);
return g_nSum;
}
DWORD WINAPI SecondThread(PVOID pvParam)
{
EnterCriticalSection(&g_cs);
g_nSum =0;
for(int n=1;n<=count;n++)
{
g_nSum +=n;
}
LeaveCriticalSection(&g_cs);
return g_nSum;
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
DWORD dwThreadId1=0;
DWORD dwThreadId2=0;
InitializeCriticalSection(&g_cs);
//初始化,不加会报访问异常
CreateThread(NULL,0UL,FirstThread,NULL,0,&dwThreadId1);
CreateThread(NULL,0UL,SecondThread,NULL,0,&dwThreadId2);
Sleep(50);
DeleteCriticalSection(&g_cs); //清理工作
return 0;
}
相关文章推荐
- 线程同步 关键代码段 CRITICAL_SECTION 用户模式同步对象 InitializeCriticalSection
- Windows核心编程笔记(6)----用户模式下的线程同步
- 用户模式下线程同步(二)
- windows核心编程-8.用户模式下的线程同步
- Windows Via C/C++:用户模式下的线程同步——轻量级读写锁(Slim Reader-Writer Locks)
- 第八章:用户模式下的线程同步
- 用户模式下的线程同步
- 【windows核心编程】 第八章 用户模式下的线程同步
- 用户模式下线程同步(一)
- Windows核心编程:(五)用户模式下线程同步
- Windows Via C/C++:用户模式下的线程同步——Condition Variables 条件变量
- windows笔记-【用户方式线程同步】关键代码段
- -【用户方式线程同步】关键代码段
- Windows线程同步—用户模式下的线程同步
- Windows核心编程笔记 用户模式下的线程同步
- windows线程同步-原子操作-Interlocked系列函数(用户模式)
- Windows核心编程学习笔记 第二部分 完成编程任务 第8章 用户模式下的线程同步
- 《Windows via C/C++》学习笔记(四)用户模式的“线程同步”
- 用户模式下的线程同步
- Windows Via C/C++:用户模式下的线程同步——原子操作:Interlocked函数族