美文网首页
事件实现同步

事件实现同步

作者: Fa1se003 | 来源:发表于2017-04-24 14:54 被阅读8次
#include "stdafx.h"
#include <windows.h>
HANDLE g_hSet = NULL;
HANDLE g_hClean = NULL;

int g_max = 10;
int g_num = 0;

DWORD WINAPI t1(LPVOID lpargv)
{
        for(int i =0;i<g_max;i++)
        {
                WaitForSingleObject(g_hSet,INFINITE);
                g_num = 1;
                //Sleep(100);
                printf("线程1执行了 %d\n",g_num);
                SetEvent(g_hClean);
                
        }
        return 0;
}

DWORD WINAPI t2(LPVOID lpargv)
{
        for(int i =0;i<g_max;i++)
        {
                WaitForSingleObject(g_hClean,INFINITE);
                g_num = 0;
                //Sleep(100);
                printf("线程2执行了 %d\n",g_num);
                SetEvent(g_hSet);
        }
        return 0;
}

int _tmain(int argc, _TCHAR* argv[])
{

        //第二个参数true通知类型,false互斥类型
        g_hSet = CreateEvent(NULL,FALSE,TRUE,NULL);
        g_hClean = CreateEvent(NULL,FALSE,FALSE,NULL);
        
        HANDLE hThread[2];
        hThread[0] = CreateThread(NULL,0,t1,NULL,0,NULL);
        hThread[1] = CreateThread(NULL,0,t2,NULL,0,NULL);

        WaitForMultipleObjects(2,hThread,TRUE,INFINITE);

        CloseHandle(hThread[0]);
        CloseHandle(hThread[1]);
        CloseHandle(g_hSet);
        CloseHandle(g_hClean);
        return 0;
}

相关文章

  • 事件实现同步

  • Linux_294_Inotify结合rsync事件同步复制

    Inotify结合rsync事件同步复制角本化实现事件检测与rsync进行数据同步 1、生成多行的数字seq 5 ...

  • 微信小程序原生开发的使用指南

    事件 默认事件在 touchstart 时触发 若要实现 用户交互事件 与 系统默认事件 同步,只需要监听 tou...

  • EventBus入门案例

    ## 一、概述 通过EventBus可以快速的实现发布订阅模式,EventBus提供了两种模式 同步事件模式:同步...

  • HI3861学习笔记(8)——LiteOS(CMSIS-RTOS

    一、简介 1.1 事件基本概念 事件是一种实现任务间通信的机制,可用于实现任务间的同步,但事件通信只能是事件类型的...

  • FreeRTOS学习笔记(6)——事件

    一、头文件 二、事件 2.1 基本概念 事件是一种实现任务间通信的机制,主要用于实现多任务间的同步,但事件通信只能...

  • Spring Event事件通知机制 源码学习

    笔记简述本学习笔记主要是介绍Spring中的事件通知是如何实现的,同步和异步事件通知的用法和实现细节以及Sprin...

  • iOS多线程同步

    多线程情况下访问共享资源需要进行线程同步,线程同步一般都用锁实现。从操作系统层面,锁的实现有临界区、事件、互斥量、...

  • I/O模型与多路复用

    同步、异步、阻塞、非阻塞 同步 & 异步 同步与异步是针对多个事件(线程/进程)来说的。 如果事件A需要等待事件B...

  • JS中同步心得

    不使用co模块 异步代码 2种方式 then 实现同步 async 实现同步 co模块实现同步(co+yield)...

网友评论

      本文标题:事件实现同步

      本文链接:https://www.haomeiwen.com/subject/iblpzttx.html