zoukankan      html  css  js  c++  java
  • Windows进程间通讯(IPC)----信号量

    线程同步内核对象

    操作系统进行进程间同步是利用信号量机制。对于windows系统而言,可以利用一些内核对象进行线程同步,因为这些内核对象可以命名并且属于系统内核,所以可以支持不同进程间的线程同步进而实现进程间同步。例如:事件对象,可等待的计时器对象,信号量对象,互斥量对象。

    事件对象

    事件对象分为手动重置事件对象和自动重置事件对象。手动重置事件对象是指在对象被触发后,WaitForSignalObject()函数返回后会立即将对象设置为未触发状态,所以这种只能实现一个等待线程被调度。而自动重置事件对象在对象被触发后,WaitForSignalObject()函数返回后其对象还是触发状态,除非手动设置,所以这样可以实现所有的等待线程都被调度。

    可等待的计时器对象

    等待的计时器对象也是分为手动重置和自动重置两种。

    信号量对象

    信号量对象和其他三种对象不同的是其有一个资源数,也就是可以设置一个资源数大于1的信号量对象,这样就可以让多个线程同时拥有此对象。

    互斥量对象

    互斥量对象是为了让过个线程中只有一个线程拥有此对象,多了一个递归计数,也就是一个线程可以多次调用wait函数,从而增加了递归计数值,只有当递归计数值等于0时此互斥量对象才会从新变成触发状态。

  • 相关阅读:
    收藏随笔
    Jquery根据元素ID判断该元素是否存在
    DIV+CSS布局中IE与FF浏览器之间重要的兼容性差异
    css3 boxsizing属性
    常见CSS属性及值
    Pycharm学习记录注释
    python之reload用法
    python之sorted用法
    android studio目录结构浅析
    纪念开通博客
  • 原文地址:https://www.cnblogs.com/revercc/p/14364449.html
Copyright © 2011-2022 走看看