• 当前位置: 首页 > 等阶教程源码 > 高级教程源码易语言读写锁源码
  • 易语言读写锁源码

    • 软件授权:
      开源软件
    • 软件大小:
      6.98 KB
    • 文件类型:
      .zip,.e
    • 下载次数:
    • 上传用户:
      心脏
    • 发布时间:
      2018-10-18 20:21
    • 软件等阶:
    • 运行环境:
      Winall,Win2003,WinXP,Win7,Win8
    • 软件评级:

    软件介绍             



     

    易语言读写锁源码


    系统结构:分配读写锁,释放,创建,销毁,读进入,读退出,写进入,写退出,原子锁_必进,读线程回调,写线程回调,创建线程,CreateEventA,WaitForSingleObject,ResetEvent,SetEvent,CreateThread,CloseHandle,RtlMoveMemory_写整数,RtlMoveMemory_读整数,


    ======读写锁类
               |  |
               |  |------ _初始化
               |  |
               |  |------ _销毁
               |  |
               |  |------ 分配读写锁
               |  |
               |  |------ 释放
               |  |
               |  |------ 创建
               |  |
               |  |------ 销毁
               |  |
               |  |------ 读进入
               |  |
               |  |------ 读退出
               |  |
               |  |------ 写进入
               |  |
               |  |------ 写退出
               |  |
               |  |------ 原子锁_必进
               |  |
               |  |
    ======窗口程序集1
               |  |
               |  |------ __启动窗口_创建完毕
               |  |
               |  |------ __启动窗口_将被销毁
               |  |
               |  |------ _按钮1_被单击
               |  |
               |  |------ _按钮2_被单击
               |  |
               |  |------ 读线程回调
               |  |
               |  |------ 写线程回调
               |  |
               |  |------ 创建线程
               |  |
               |  |
    ======调用的Dll
               |  |
               |  |---[dll]------   CreateEventA
               |  |
               |  |---[dll]------   _原子锁_整数
               |  |
               |  |---[dll]------   _原子锁_逻辑
               |  |
               |  |---[dll]------   _原子锁_指针
               |  |
               |  |---[dll]------   WaitForSingleObject
               |  |
               |  |---[dll]------   _原子加
               |  |
               |  |---[dll]------   _原子减
               |  |
               |  |---[dll]------   _原子_加减
               |  |
               |  |---[dll]------   ResetEvent
               |  |
               |  |---[dll]------   SetEvent
               |  |
               |  |---[dll]------   CreateThread
               |  |
               |  |---[dll]------   CloseHandle
               |  |
               |  |---[dll]------   RtlMoveMemory_写整数
               |  |
               |  |---[dll]------   RtlMoveMemory_读整数
               |  |
               |  |---[dll]------   _分配内存
               |  |
               |  |---[dll]------   _释放内存

      


    易语言读写锁源码


    调用的DLL命令:


    .DLL命令 CreateEventA, 整数型, "kernel32", "CreateEventA", , 创建一个事件对象  如执行成功,返回事件对象句柄;零表示出错。会设置GetLastError。即使返回一个有效的句柄,但同时指出指定的名字已经存在,GetLastError也会设为ERROR_ALREADY_EXISTS
        .参数 lpEventAttributes, 整数型, , SECURITY_ATTRIBUTES,指定一个结构,用于设置对象的security特性。如变成ByVal As 并传递零值,则表明使用对象默认的security设置
        .参数 bManualReset, 整数型, , 如果为TRUE,表示创建一个人工重设事件;如果为FALSE,表示创建一个自动重设事件
        .参数 bInitialState, 整数型, , 如事件应内部进入触发状态,则为TRUE
        .参数 lpName, 整数型, , 指定事件对象的名字。用vbNull创建一个未命名事件对象。如已经存在拥有这个名字的一个事件,则现有的命名事件就会打开。这个名字可能不与一个现有互斥体、信号机、可等待计时器或文件映射的名字相符;


    .DLL命令 _原子锁_整数, 整数型, "kernel32.dll", "InterlockedCompareExchange", ,  返回修改前变量的值
        .参数 Destination, 整数型, 传址, 指向一个32位变量的指针
        .参数 Exchange, 整数型, , 比较成功后要替换的值
        .参数 Comperand, 整数型, , 和当前值进行比较的值


    .DLL命令 _原子锁_逻辑, 逻辑型, "kernel32.dll", "InterlockedCompareExchange", ,  返回修改前变量的值
        .参数 Destination, 逻辑型, 传址, 指向一个32位变量的指针
        .参数 Exchange, 逻辑型, , 比较成功后要替换的值
        .参数 Comperand, 逻辑型, , 和当前值进行比较的值


    .DLL命令 _原子锁_指针, 整数型, "kernel32.dll", "InterlockedCompareExchange", ,  返回修改前变量的值
        .参数 Destination, 整数型, , 指向一个32位变量的指针
        .参数 Exchange, 整数型, , 比较成功后要替换的值
        .参数 Comperand, 整数型, , 和当前值进行比较的值


    .DLL命令 WaitForSingleObject, 整数型, "kernel32", "WaitForSingleObject", , 监测一个对象
        .参数 hHandle, 整数型
        .参数 dwMilliseconds, 整数型


    .DLL命令 _原子加, 整数型, "kernel32", "InterlockedIncrement", , , 返回修改前变量的值,互锁函数对一个32变量进行增1操作,函数都是16位和64位版本。
        .参数 Destination, 整数型, 传址


    .DLL命令 _原子减, 整数型, "kernel32", "InterlockedDecrement", , , 返回修改前变量的值,互锁函数对一个32变量进行减1操作,函数都是16位和64位版本。
        .参数 Destination, 整数型, 传址


    .DLL命令 _原子_加减, 整数型, "kernel32.dll", "InterlockedExchangeAdd", , , 返回修改前变量的值,互锁函数提供了对变量进行加法操作,保证了同一时刻只有一个线程对这个变量进行加法操作。Value是正数的时候进行加法操作,是负数的时候进行减法操作。
        .参数 Destination, 整数型, , 指向一个32位变量的指针
        .参数 Value, 整数型, , 共享变量上要加的值


    .DLL命令 ResetEvent, 整数型, "kernel32", "ResetEvent", , 复位事件对象
        .参数 hEvent, 整数型


    .DLL命令 SetEvent, 整数型, "kernel32", "SetEvent", , 设置事件对象
        .参数 hEvent, 整数型


    .DLL命令 CreateThread, 整数型, "Kernel32", "CreateThread"
        .参数 lpThreadAttributes, 整数型
        .参数 dwStackSize, 整数型
        .参数 lpStartAddress, 整数型
        .参数 lpParameter, 整数型
        .参数 dwCreationFlags, 整数型
        .参数 lpThreadId, 整数型, 传址


    .DLL命令 CloseHandle, 整数型, "Kernel32", "CloseHandle", , 关闭一个内核对象。其中包括文件、文件映射、进程、线程、security和同步对象等。
        .参数 对象的句柄, 整数型, , hObject 欲关闭的一个对象的句柄 


    .DLL命令 RtlMoveMemory_写整数, , "kernel32.dll", "RtlMoveMemory"
        .参数 目标数据, 整数型
        .参数 原数据, 整数型, 传址
        .参数 尺寸, 整数型


    .DLL命令 RtlMoveMemory_读整数, , "kernel32.dll", "RtlMoveMemory"
        .参数 目标数据, 整数型, 传址
        .参数 原数据, 整数型
        .参数 尺寸, 整数型


    .DLL命令 _分配内存, 整数型, "kernel32.dll", "GlobalAlloc", , 成功返回值是一个指向内存块指针或内存块句柄,否则返回0
        .参数 wFlags, 整数型, , GMEM_FIXED (值:0) 表示申请到的地址是固定的,GMEM_MOVEABLE,(值:2) 标志指定了分配的内存是可移动的 ,GMEM_DISCARDABLE ,(值:256) 在指定了GMEM_MOVEABLE后再指定此标志表示内存块是可丢弃的 ,GMEM_ZEROINIT,(值:64) 表示需要将内存块中的所有字节预先初始化为0 ,GPTR,(值:64) 表示GMEM_FIXED和GMEM_ZEROINIT两个组合 ,GHND,(值:66) 表示GMEM_MOVEABLE和GMEM_ZEROINIT两个组合
        .参数 dwBytes, 整数型, , 以字节为单位的内存的大小


    .DLL命令 _释放内存, 整数型, "kernel32.dll", "GlobalFree", , 释放掉,先前申请一块固定的内存块,如果释放成功,返回值为NULL。否则返回值就是指向要释入的内存块的句柄
        .参数 hMem, 整数型, , 指向一个内存块的指针,一般是先前用GlobalAlloc函数申请到的内存块.

    相关软件

    下载说明

    本站目前主要提供易语言源码、模块、支持库等下载大部分源码均为ZIP打包,
    注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
    部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
    由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。

    使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。

     

    推荐排行

    • 易语言小程序解密源码

      原贴 [易语言首发]PCVX小程序解密 因为 我也不懂 就看了下这个 PC小程序解密.e 发出来不知道怎么用,所以 度娘一步步找答案得到 的 自行研究捉摸了下 仅供学习参考 1.打开 PC小程序解...

    • 易语言模块基址获取源码

      易语言模块基址获取源码,模块基址获取,GetModuleBaseAddress...

    • 易语言流程控制编译原理

      易语言流程控制编译原理源码,流程控制编译原理,是否汉字,读字符,是否运算符,是否逻辑运算符,指针回溯,跳过空格,跳过注释,代码块,取程序返回值,外部接口_代码块执行,外部接口_表达式计算,表达式计算,逻辑判断,文本到逻辑,函数调用,函数_位或,函数_测试,函数_信...

    • 易语言搜索程序隐藏代码

      易语言搜索程序隐藏代码源码,搜索程序隐藏代码,枚举子程序...

    • 易语言打鱼学习链表源码

      易语言打鱼学习链表源码,打鱼学习链表,入栈,出栈,清空链表,取顶数据,取索引处值,取长度,取值处索引,插入,删除,倒置,是否为空,到八,入队,出队...

    • 易语言脚本解析类源码

      易语言脚本解析类源码,脚本解析类,子程序1,QEHash,创建进入许可证_,进入许可区_,退出许可区_,删除进入许可证_,启动线程_,销毁线程_,寻找字节集_,内存_申请,内存_释放,内存_尺寸,内存_读整数,内存_写整数,内存_复制,内存_写字节集,内存_写文本,内存_读字节集,...

    • 易语言核心算术计算解析

      易语言核心算术计算解析源码,核心算术计算解析,信息框3,信息框2...

    • 易语言获取网页和密码例

      易语言获取网页和密码例程源码,获取网页和密码例程,取文档对象,取浏览器文档对象_API,注册消息_API,发送消息_API,置鼠标捕获窗口_API,取消鼠标捕获窗口_API,取窗口类名_API,取座标窗口句柄_API,取光标位置_API...

    • 易语言置入代码调用子程

      易语言置入代码调用子程序办法源码,置入代码调用子程序办法,普通写法,置入写法...