本帖最后由 xieglt 于 2020-8-10 10:09 编辑
WINDOWS 的线程同步的方法很多,随便说一种吧,用Event
首先:
定义全局的 Event并初始化
//1、定义全局的Event
HANDLE g_process = NULL;
HANDLE g_store = NULL;
//2、主线程里对Event进行初始化
g_process = CreateEvent(NULL,FALSE,FALSE,NULL);
g_store = CreateEvent(NULL,FALSE,FALSE,NULL);
//3、数据采集线程
//采集数据
...
//数据采集完毕
//设置g_process状态,通知数据处理线程可以进行数据处理了
SetEvent(g_process);
//4、数据处理线程
//等待数据处理信号(g_process)
//无限等待,等待到信号则线程继续,你这样的处理逻辑无限等待就可以了
WaitForSingleObject(g_process,INFINITE);
//数据处理
...
//数据处理完毕
//设置数据存储信号
SetEvent(g_store);
//5、数据存储线程
//无限等待,等待到信号则线程继续
WaitForSingleObject(g_store,INFINITE);
//数据存储
...
//数据存储完毕
//6、主线程里释放 Event对象
CloseHandle(g_process);
CloseHandle(g_store);