易语言模块API视频教程线程创建许可证(InitializeCriticalSection)

================================================
多线程 许可证相关知识
----------------------------------------------
1、(1)临界资源是指每次仅允许一个进程访问的共享资源。

(2)属于临界资源的硬件有打印机、磁带机等,软件有消息缓冲队列、变量、数组、缓冲区等。 多进程间应采取互斥方式,实现对这种资源的共享。

(3)必须保证多进程互斥地进入自己的临界区,便可实现诸进程对临界资源的互斥访问

(4)临界区内放的一般是被1个以上的进程共用的数据。

(5)属于临界资源的硬件有打印机、磁带机等,软件有消息缓冲队列、变量、数组、缓冲区等。 诸进程间应采取互斥方式,实现对这种资源的共享。

2、每个进程中访问临界资源的那段代码称为临界区。每次只准许一个进程进入临界区,进入后不允许其他进程进入。

3、进程进入临界区的调度原则是:

①如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。

②任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待

③进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。

④如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。

API

.版本 2

.DLL命令 InitializeCriticalSection, , "kernel32", "InitializeCriticalSection", 公开, 线程_创建许可证 初始化临界资源对象
.参数 lpCriticalSection, 线程许可证, 传址, 类型是自定义数据类型,线程许可证就是参数临界资源对象指针

自定义数据类型

.版本 2

.数据类型 线程许可证, 公开
.成员 DebugInfo, 整数型, , , 调试信息
.成员 LockCount, 整数型, , , 锁定计数
.成员 RecursionCount, 整数型, , , 递归计数
.成员 OwningThread, 整数型, , , 拥有线程
.成员 LockSemaphore, 整数型, , , 锁定信号量
.成员 SpinCount, 整数型, , , 自旋计数

模块源码

.版本 2

.子程序 线程_创建许可证, 线程许可证, 公开, 创建成功返回一个进入许可证的数值,这个数值可以保证进入指定程序中的代码区,避免多线程冲突
.局部变量 进入许可证, 线程许可证

InitializeCriticalSection (进入许可证)
加入成员 (集_许可证数组, 进入许可证)
返回 (进入许可证)


发布日期:

所属分类: 易语言 标签: