[笔记]线程--事件之同步
本帖最后由 2016wapjpc 于 2017-7-23 16:24 编辑线程还有一个重要的应用就是同步,先后交替执行
#include "stdafx.h"
#include <windows.h>
HANDLE g_hSet,g_hClear;
int g_Max = 10;
int g_Number = 0;
DWORD WINAPI ThreadProduct(LPVOID pM)
{
for(int i = 0;i<g_Max;i++)
{
WaitForSingleObject(g_hSet,INFINITE);
g_Number =1;
DWORD id = GetCurrentThreadId();
printf("product %d datas %d putin cache\n",id,g_Number);
//设置事件的状态为已通知
SetEvent(g_hClear);
}
return 0;
}
DWORD WINAPI ThreadConsumer(LPVOID pM)
{
for(int i = 0;i<g_Max;i++)
{
//wait自己的事件,当得到事件的状态为已通知时,向下执行
WaitForSingleObject(g_hClear,INFINITE);
g_Number =0;
DWORD id = GetCurrentThreadId();
printf("Consumser %d datas %d putin cache\n",id,g_Number);
//设置生产者事件的状态为已通知
SetEvent(g_hSet);
}
return 0;
}
尽然没有看懂!! 小白表示没看懂~~~~
页:
[1]