文档章节

windows内核同步函数

zhangyujsj
 zhangyujsj
发布于 2014/12/19 12:25
字数 361
阅读 22
收藏 0

windows内核提供了一系列的同步函数:在msdn上的链接如下:

http://msdn.microsoft.com/zh-cn/library/aa909196.aspx

The following table shows the kernel synchronization functions.

Functions Description

CreateEvent

Creates a named or an unnamed event object.

CreateMutex

Creates a named or unnamed mutex object.

CreateSemaphore

Creates a named or unnamed semaphore object.

DeleteCriticalSection

Releases all resources used by a critical section object that is not owned.

DuplicateHandle

Duplicates an object handle. The duplicate handle refers to the same object as the original handle. Therefore, any changes to the object are reflected through both handles.

EnterCriticalSection

Waits for ownership of the specified critical section object.

InitializeCriticalSection

Initializes a critical section object.

InterlockedCompareExchange

Performs an atomic comparison of the specified values and exchanges the values based on the outcome of the comparison.

InterlockedCompareExchangePointer

Performs an atomic comparison of the specified parameter values and exchanges the values based on the outcome of the comparison.

InterlockedDecrement

Decrements the value of the specified 32-bit variable, and checks the resulting value.

InterlockedExchange

Exchanges a pair of 32-bit values.

InterlockedExchangeAdd

Increments an Addend variable.

InterlockedExchangePointer

Exchanges a pair of values.

InterlockedIncrement

Increments the value of the specified 32-bit variable, and checks the resulting value.

InterlockedTestExchange

Performs a conditional setting of a variable.

LeaveCriticalSection

Releases ownership of the specified critical section object.

OpenEvent

Opens an existing named event object.

PulseEvent

Provides a single operation that sets to signaled the state of the specified event object and then resets it to nonsignaled after releasing the appropriate number of waiting threads.

ReleaseMutex

Releases ownership of the specified mutex object.

ReleaseSemaphore

Increases the count of the specified semaphore object by a specified amount.

ResetEvent

Sets the state of the specified event object to nonsignaled.

SetEvent

Sets the state of the specified event object to signaled.

TryEnterCriticalSection

Attempts to enter a critical section without blocking.

WaitForMultipleObjects

Returns when either any one of the specified objects is in the signaled state, or the time-out interval elapses.

WaitForSingleObject

Returns when the specified object is in the signaled state or when the time-out interval elapses.

 

本文转载自:http://msdn.microsoft.com/zh-cn/library/aa909196.aspx

zhangyujsj
粉丝 24
博文 358
码字总数 224241
作品 0
广州
私信 提问
多线程编程--5种方法实现线程同步

1:用Interlocked系列函数实现线程同步; 2:用CRITICAL_SECTION及其系列函数实现线程同步; 3:用RTL_SRWLOCK及其系列函数实现线程同步; 4:用事件内核对象实现线程同步; 5:用信号量内核...

长征2号
2018/01/11
0
0
《Windows驱动开发技术详解》学习笔记

Abstract   如果推荐 Windows 驱动开发的入门书,我强烈推荐《Windows驱动开发技术详解》。但是由于成书的时间较早,该书中提到的很多工具和环境都已不可用或找不到,而本文搜集了大部分的...

Sagittarius_Warrior
02/13
0
0
Windows与Linux的异步IO在设计上的差异

在windows操作系统内核中,首先要明白四个概念,apc(异步过程调用),dpc(延迟过程调用),irp(io请求包)以及基于优先级的抢占式调度,下面分别解释: 1.apc。 异步过程调用类似于linux...

晨曦之光
2012/04/10
626
0
VC++线程同步(二) Mutex互斥量的例子

同步对象使用实例 Win32窗口的建立: 我们将要学习的使用,分别是:互斥量,临界区,事件,信号量.所以我们需要一个窗口,呈现四种四种同步对象状态. 需要学到的目的有4点: 1 掌握内核同步对象的触...

超级极客
2017/07/25
0
0
Windows下Critical Section、Event、Mutex、Semaphores区别

临界区(Critical Section) 用户进程对数据的互斥访问,保证在某一时刻只有一个线程能访问临界区。如果有多个线程试图同时访问临界区,那么在有一个线程进入临界区后其他试图访问的线程将被...

西昆仑
2011/07/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

阿里云安全中心:自动化安全闭环实现全方位默认安全防护

随着数字化转型的深入发展,企业云上资产越来越多元化,随之而来的是安全威胁的复杂化,企业需要花费大量精力进行告警分析、威胁检测、病毒查杀等工作。Gartner曾指出,随着安全警报的复杂性...

迷你芊宝宝
21分钟前
1
0
好程序员web前端分享值得参考的css理论:OOCSS、SMACSS与BEM

好程序员web前端分享值得参考的css理论:OOCSS、SMACSS与BEM 最近在The Sass Way里看到了Modular CSS typography一文,发现文章在开头部分就提到了OOCSS、 SMACSS、 BEM、这3个词。“如果还不...

好程序员IT
24分钟前
2
0
Gradle的安装和在idea的配置

下载gradle 下载地址:http://services.gradle.org/distributions/ 。我下载的是 gradle-5.4-bin.zip。然后解压到G:\gradle-5.4 配置环境变量。 有3个环境变量: GRADLE_HOME 等于gradle的安...

王坤charlie
24分钟前
1
0
聊聊分布式事务,再说说解决方案

前言 最近很久没有写博客了,一方面是因为公司事情最近比较忙,另外一方面是因为在进行 CAP 的下一阶段的开发工作,不过目前已经告一段落了。 接下来还是开始我们今天的话题,说说分布式事务...

群星纪元
27分钟前
2
0
分布式项目(6)consul注册中心

lelinked
36分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部