多线程支持库

多线程支持库 帮助手册20080822版 返回支持库手册 返回首页

提供对多线程的支持，并通过实现进入许可证机制以避免多线程冲突。

操作系统支持： Windows、Linux

命令类别：

多线程控制

适用版本，多线程支持库 （1.1#3版）


多线程控制

多线程控制 类别 跳至：多线程支持库

启动线程 | 创建进入许可证 | 删除进入许可证 | 进入许可区
退出许可区 | 等待线程 | 强制结束线程 | 关闭线程句柄


新建进入许可 命令 操作系统支持：Windows 所属类别：多线程控制

启动线程 命令 操作系统支持：Windows、Linux 所属类别：多线程控制

创建并启动一条线程，可重复使用以创建多条线程，成功返回真，失败返回假。

语法： 逻辑型 启动线程 （欲执行的子程序，参数数据）

参数名 | 描 述
欲执行的子程序 | 必需的；子程序指针。本参数提供创建线程时欲启动的子程序，该子程序必须没有参数，否则将出错。
参数数据 | 可选的；整数型。本参数提供线程被启动时传递到欲启动子程序的整数数据。如果本参数未被省略，此时被启动子程序必须接收一个整数型参数，否则将出错。

例程：

说明：

启动或创建一个线程，多个启动线程可以同时启动一个子程序，每个启动的

子程序都可独立运行，但是使用的变量可以是一个。

参见：例程1


新建进入许可 命令 操作系统支持：Windows 所属类别：多线程控制

创建进入许可证 命令 操作系统支持：Windows、Linux 所属类别：多线程控制

创建并返回一个进入许可证数值，此许可证值用作进入程序中的指定许可代码区，以避免多线程冲突。成功返回非零整数值，失败返回0。所创建的许可证在不再使用后，必须使用“删除进入许可证”命令将其删除。

语法： 整数型 创建进入许可证 （）

例程：

说明：

创建一个许可证号，如果需要使用进入许可区命令，必须先用本命令创建一个许可证号。


删除进入许可 命令 操作系统支持：Windows 所属类别：多线程控制

删除进入许可证 命令 操作系统支持：Windows、Linux 所属类别：多线程控制

删除由“创建进入许可证”命令所创建返回的进入许可证。成功返回真，失败返回假。

语法： 逻辑型 删除进入许可证 （进入许可证）

参数名 | 描 述
进入许可证 | 必需的；整数型。本参数应提供由“创建进入许可证”命令所创建并返回的数值。

例程：

说明：

在不使用许可证号的时候，必须用这个命令来删除这个许可证。


进入许可区 命令 操作系统支持：Windows 所属类别：多线程控制

进入许可区 命令 操作系统支持：Windows、Linux 所属类别：多线程控制

根据已经创建的许可证进入指定许可代码区，在此线程未退出之前，其它线程如要通过同一个进入许可证进入该许可代码区则必须先等待此线程退出许可代码区，从而保证了指定许可代码区在任何时候都只能有一条线程进入并执行。

语法： 无返回值 进入许可区 （进入许可证）

参数名 | 描 述
进入许可证 | 必需的；整数型。本参数应提供由“创建进入许可证”命令所创建并返回的数值。

例程：

说明：

如果有几个线程中同时向一个变量中写入数据，然后其它程序从这个变量中把数据读出时，为了数据不会冲突出错，就必须使用进入许可证，在一个线程没有离开许可区之前，其他线程在执行到需要写这个变量时，是不会继续进行的，直到等待前一个写这个变量的程序离开许可区，这个线程才可能进入操作这个变量。


进入许可区 命令 操作系统支持：Windows 所属类别：多线程控制

退出许可区 命令 操作系统支持：Windows、Linux 所属类别：多线程控制

指示当前线程将退出许可代码区，并允许其它使用同一进入许可证的线程进入此许可代码区。

语法： 无返回值 退出许可区 （进入许可证）

参数名 | 描 述
进入许可证 | 必需的；整数型。本参数应提供由“创建进入许可证”命令所创建并返回的数值。

例程：

说明：

当前线程退出指定的许可区，在没有退出许可区之前，其他线程是不能操作这个许可区的，如果需要操作，其他线程只有等待，等该线程退出之后再进入操作。


等待线程 命令 操作系统支持：Windows 所属类别：多线程控制

等待线程（多线程控制） 命令 操作系统支持：Windows、Linux 所属类别：多线程控制

等待，直到指定线程结束或等待超时才返回。返回真表示等待成功。注意，在Linux下暂不支持超时等待。本命令为初级命令。

语法： 逻辑型 等待线程（线程句柄，等待时间）

参数名 | 描 述
线程句柄 | 必需的；整数型。可通过“启动线程”的第三个参数获取线程句柄。
等待时间 | 可选的；整数型。指定等待时间，单位为毫秒。如果为0或负数，或被省略，表示不限定等待时间。

例程：

说明：

如果想要等待一段时间然后从线程中读出数据来，可以由此命令来设置等待的时间。


强制结束线程 命令 操作系统支持：Windows 所属类别：多线程控制

强制结束线程 命令 操作系统支持：Windows、Linux 所属类别：多线程控制

返回真表示执行成功。本命令为初级命令。

语法： 逻辑型 强制结束线程 （线程句柄）

参数名 | 描 述
线程句柄 | 必需的；整数型。可通过“启动线程”的第三个参数获取线程句柄。

例程：

说明：

如果启动线程提供了参数“线程句柄”，点击时就会强行关闭正在运行的线程。


关闭线程句柄 命令 操作系统支持：Windows 所属类别：多线程控制

关闭线程句柄 命令 操作系统支持：Windows 、Linux 所属类别：多线程控制

返回真表示已成功关闭线程句柄。在Linux下，如果线程已经结束，本命令可能返回假。本命令为初级命令。

语法： 逻辑型 关闭线程句柄 （线程句柄）

参数名 | 描 述
线程句柄 | 必需的：整数型。可通过“启动线程”的第三个参数获取线程句柄。

例程：

说明：

如果启动线程提供了参数“线程句柄”，在用完的时候要关闭线程句柄。