zoukankan      html  css  js  c++  java
  • 创建对象事件

    为了防止多线程同时调用 使用临界区对象
    InitializeCriticalSection
    之后线程访问临界区中数据的时候,必须首先调用EnterCriticalSection函数,申请进入临界区,在同一时间内存,windows只允许一个线程进入临界区。所以在申请的时候,如果有另一个线程在临界区的话,EnterCriticalSection函数会一直等待下去,直到其他线程离开临界区才返回。
    
    当操作完成的时候,还要将临界区还给windows,以便其他线程可以申请使用。这个工作由
    LeaveCriticalSection函数来完成。
    
    当程序不在使用临界区对象的时候,必须使用DeleteCriticalSection函数将它删除。
    ///////////////////////////////////////////////////////////////////////////////////////////
    
    CreateEvent 创建一个事件对象
    
    OpenEvent   打开一个事件对象返回句柄
    
    SetEvent    把事件变成触发状态
    
    ResetEvent  把事件变成未触发状态
    
    PulseEvent  把事件变成触发状态然后在把事件变成未触发状态
    
    WaitForMultipleObjects 等待多个事件对象
    
    WaitForSingleObject 等待一个事件对象
    
    计时器事件
    CreateWaitableTimer 创建一个可等待的计时器内核对象
    
    OpenWaitableTimer   打开一个可等待的计时器内核对象返回句柄
    
    SetWaitableTime     触发一个可等待的计时器内核对象
    
    CancelWaitableTimer 取消一个可等待的计时器内核对象
    
    
    信号量事件
    CreateSemaphore  创建一个新的信号量
    
    OpenSemaphore  打开一个信号量返回句柄
    
    ReleaseSemaphore  递增信号量的当前资源计数
    
    
    互斥体内核对象
    CreateMutex 创建一个互斥体
    
    OpenMutex   打开一个互斥体返回句柄
    
    ReleaseMutex 释放一个互斥体内核对象 使用一次计数器减少1要为0才释放完毕
  • 相关阅读:
    RMQ 算法入门
    hdu1535——Invitation Cards
    LeetCode 206. Reverse Linked List(迭代和递归两种实现)
    CSDN开源夏令营 基于Compiz的switcher插件设计与实现之前期准备 git的简单使用
    xml初学简单介绍
    do{}while(0)与CC_BREAK_IF的绝妙搭配
    《Python基础教程》第20章学习笔记
    oracle启动过程2
    Javascript 笔记与总结(1-6)Javascript 面向对象
    [Swift]LeetCode44. 通配符匹配 | Wildcard Matching
  • 原文地址:https://www.cnblogs.com/IMyLife/p/4826035.html
Copyright © 2011-2022 走看看