进程同步在多线程应用程序中是非常重要的,实现进程同步也有很多方法,可以利用互斥锁,可以利用事件,这两种方法可以查阅MSDN相关部分,主要看如何利用临界区实现进程同步
#include <Windows.h>
#include <iostream>
using namespace std;
DWORD WINAPI threadFun1(
LPVOID lpParameter // 线程1的线程函数声明
);
DWORD WINAPI threadFun2(
LPVOID lpParameter // 线程2的线程函数声明
);
int tickets=100;//火车站的总票数
CRITICAL_SECTION g_cs;//临界区的参数
///
//名称:main//
//功能:用两个线程模拟火车站的售票系统,并用临界区实现线程的同步//
//
void main()
{
HANDLE hThread1;
hThread1=CreateThread(NULL,0,threadFun1,NULL,0,NULL);
HANDLE hThread2;
hThread2=CreateThread(NULL,0,threadFun2,NULL,0,NULL);
CloseHandle(hThread1);//创建线程1
CloseHandle(hThread2);//创建现成
InitializeCriticalSection(&g_cs);//初始化临界区
Sleep(4000);//主程序睡眠4秒,使线程函数得以运行
DeleteCriticalSection(&g_cs);//程序执行完毕,销毁临界区
}