|
发表于 2023-2-24 00:30:07
|
显示全部楼层
广东省广州市
.版本 2 .子程序 _测试_缓冲区 .局部变量 int, 整数型 .局部变量 t, 整数型 .局部变量 i, 整数型 .局部变量 addr, 整数型 .局部变量 bin, 字节集 addr = 缓冲区_分配 () 缓冲区_添加文本 (addr, “123456”) 缓冲区_添加字节集 (addr, 到字节集 (取空白文本 (4096))) 缓冲区_添加文本 (addr, “654321”) 输出调试文本 (缓冲区_取长度 (addr)) bin = 缓冲区_取数据字节集 (addr) 输出调试文本 (到文本 (bin)) 输出调试文本 (缓冲区_取数据文本 (addr)) 缓冲区_释放 (addr) 返回 () t = 取启动时间 () .计次循环首 (1000000, i) addr = _内存分配 (_取默认堆 (), 8, 8) ' addr = _内存页分配 (0, 8, #MEM_COMMIT, 4) .如果 (addr ≠ 0) _内存释放 (_取默认堆 (), 0, addr) ' _内存页释放 (addr, 0, #MEM_RELEASE) .否则 输出调试文本 (“失败”) .如果结束 .计次循环尾 () t = 取启动时间 () - t 输出调试文本 (i) 输出调试文本 (t) .子程序 _测试_队列2 .局部变量 q, 鱼刺类_队列, , , queue .局部变量 t, 整数型 .局部变量 len, 整数型 .局部变量 i, 整数型 .局部变量 _字节, 字节型 .局部变量 _短整数, 短整数型 .局部变量 _整数, 整数型 .局部变量 _长整数, 长整数型 .局部变量 _小数, 小数型 .局部变量 _双精度小数, 双精度小数型 .局部变量 _逻辑, 逻辑型 .局部变量 _日期时间, 日期时间型 .局部变量 _子程序指针, 子程序指针 .局部变量 _文本, 文本型 .局部变量 _字节集, 字节集 .局部变量 _字节返回, 字节型 .局部变量 _短整数返回, 短整数型 .局部变量 _整数返回, 整数型 .局部变量 _长整数返回, 长整数型 .局部变量 _小数返回, 小数型 .局部变量 _双精度小数返回, 双精度小数型 .局部变量 _逻辑返回, 逻辑型 .局部变量 _日期时间返回, 日期时间型 .局部变量 _子程序指针返回, 子程序指针 .局部变量 _文本返回, 文本型 .局部变量 _字节集返回, 字节集 _字节 = 123 _短整数 = 12345 _整数 = 1234567890 _长整数 = 1234567890123 _小数 = 到小数 (“1.2345”) _双精度小数 = 到数值 (“1.234567890123”) _逻辑 = 真 _日期时间 = [2038年1月30日] _子程序指针 = &_测试_队列2 _文本 = “12345678901234567890” _字节集 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 123 } q.压入字节 (_字节) q.压入短整数 (_短整数) q.压入整数 (_整数) q.压入长整数 (_长整数) q.压入小数 (_小数) q.压入双精度小数 (_双精度小数) q.压入逻辑 (_逻辑) q.压入日期时间 (_日期时间) q.压入子程序指针 (_子程序指针) q.压入文本 (_文本) q.压入字节集 (_字节集) q.弹出字节 (_字节返回) q.弹出短整数 (_短整数返回) q.弹出整数 (_整数返回) q.弹出长整数 (_长整数返回) q.弹出小数 (_小数返回) q.弹出双精度小数 (_双精度小数返回) q.弹出逻辑 (_逻辑返回) q.弹出日期时间 (_日期时间返回) q.弹出子程序指针 (_子程序指针返回) q.弹出文本 (_文本返回) q.弹出字节集 (_字节集返回) 输出调试文本 (_字节返回) 输出调试文本 (_短整数返回) 输出调试文本 (_整数返回) 输出调试文本 (_长整数返回) 输出调试文本 (_小数返回) 输出调试文本 (_双精度小数返回) 输出调试文本 (_逻辑返回) 输出调试文本 (_日期时间返回) 输出调试文本 (到整数 (_子程序指针返回)) 输出调试文本 (_文本返回) 输出调试文本 (取字节集长度 (_字节集返回)) 返回 () len = 1000000 ' 100W q.置默认缓冲区大小 (1024 × 1024 × 4) t = 取启动时间 () .计次循环首 (len, i) q.压入整数 (i) .计次循环尾 () len = q.取数量 () .计次循环首 (len, i) q.弹出整数 (i) .计次循环尾 () t = 取启动时间 () - t 输出调试文本 (len) 输出调试文本 (i) 输出调试文本 (“整数 压入完弹出用时:” + 到文本 (t)) 返回 () _字节集 = 到字节集 (“鱼刺 你又调皮了唉!”) t = 取启动时间 () .计次循环首 (len, i) q.压入字节集 (_字节集) .计次循环尾 () .计次循环首 (q.取数量 (), i) q.弹出字节集 (_字节集) .计次循环尾 () t = 取启动时间 () - t 输出调试文本 (到文本 (_字节集)) 输出调试文本 (i) 输出调试文本 (“字节集 压入完弹出用时:” + 到文本 (t)) .子程序 _测试_队列1 .局部变量 队列2, 鱼刺类_队列 .局部变量 t, 整数型 .局部变量 bin, 字节集 .局部变量 len, 整数型 .局部变量 i, 整数型 len = 1000000 ' 100W t = 取启动时间 () .计次循环首 (len, i) 队列2.压入整数 (i) .计次循环尾 () .计次循环首 (len, i) 队列2.弹出整数 (i) .计次循环尾 () t = 取启动时间 () - t 输出调试文本 (“整数 压入完弹出用时:” + 到文本 (t)) 返回 () bin = 到字节集 (“鱼刺 你又调皮了唉!”) t = 取启动时间 () .计次循环首 (len, i) 队列2.压入字节集 (bin) .计次循环尾 () .计次循环首 (队列2.取数量 (), i) 队列2.弹出字节集 (bin) .计次循环尾 () t = 取启动时间 () - t 输出调试文本 (到文本 (bin)) 输出调试文本 (i) 输出调试文本 (“字节集 压入完弹出用时:” + 到文本 (t)) .子程序 Demo .局部变量 线程, 鱼刺类_线程操作 .局部变量 临界, 鱼刺类_临界许可 .局部变量 互斥, 鱼刺类_互斥锁 .局部变量 事件, 鱼刺类_事件 .局部变量 信号, 鱼刺类_信号量 .局部变量 原子, 鱼刺类_原子锁 .局部变量 线程池, 鱼刺类_线程池 .局部变量 线程池Ex, 鱼刺类_线程池Ex .局部变量 读写锁1, 鱼刺类_读写锁 .局部变量 线程池_自销毁, 鱼刺类_线程池_自销毁 .局部变量 bool, 逻辑型 .局部变量 int, 整数型 .局部变量 临界许可, 临界许可 .局部变量 ret, 整数型 bool = 线程.创建 (&Demo_Thread) .判断循环首 (线程.是否已创建 () = 真) 线程.等待 (10) _延迟 (10) 线程.等待2 (20) 线程.等待_msg (20) .判断循环尾 () 线程.投递信息A (0, 0, 0) 线程.投递信息W (0, 0, 0) 输出调试文本 (“线程操作”, bool) 临界.进入 () 处理事件 () 临界.退出 () 输出调试文本 (“临界许可”) bool = 互斥.创建 () 互斥.进入 () 处理事件 () 互斥.退出 () 互斥.关闭 () 输出调试文本 (“互斥”, bool) bool = 事件.创建 () 事件.触发 () 处理事件 () 事件.等待进入 () 事件.关闭 () 输出调试文本 (“事件对象”, bool) bool = 信号.创建 (1, 2) 信号.增加 (1) 信号.递减 () 信号.关闭 () 输出调试文本 (“信号量”, bool) 原子.递增 () 原子.赋值 (2) 原子.运算 (1) 输出调试文本 (“原子锁”, 原子.取值 ()) ' 3 线程池.创建 (2) 线程池.投递任务 (&Demo_Thread, 1) 线程池.取_状态 () 线程池.取_是否空闲 () 线程池.取_空闲线程数 () 线程池.取_执行线程数 () 线程池.取_队列任务数 () 线程池.取_线程池容量 () bool = 线程池.销毁 (0) 输出调试文本 (“线程池”, bool) 线程池Ex.创建 (2, 3) 线程池Ex.投递任务 (&Demo_Thread, 2) 线程池Ex.等待任务动态 () 线程池Ex.暂停 () 线程池Ex.继续 () 线程池Ex.事件_暂停 () 线程池Ex.取_状态 () 线程池Ex.取_是否空闲 () 线程池Ex.取_空闲线程数 () 线程池Ex.取_执行线程数 () 线程池Ex.取_队列任务数 () 线程池Ex.取_线程池容量 () 线程池Ex.置_最大线程数 (3) 线程池Ex.置_空闲回收时间 (100) bool = 线程池Ex.销毁 (0) 输出调试文本 (“鱼翅类.线程池Ex”, bool) bool = 读写锁1.读锁定 () 读写锁1.解锁 () bool = 读写锁1.写锁定 () 读写锁1.解锁 () 输出调试文本 (“读写锁”, bool) 输出调试文本 (“--------------------------------”) bool = 线程_创建 (&Demo_Thread, , int) 线程_挂起 (int) 输出调试文本 (“挂起后状态”, _对象等待 (int, 0)) 线程_恢复 (int) bool = 线程_等待 (int, 5000) 线程_关闭句柄 (int) 输出调试文本 (“线程”, int, bool) int = _创建进入许可证 () _进入许可区 (int) 处理事件 () _退出许可区 (int) _删除进入许可证 (int) 输出调试文本 (“许可证”, int) 临界许可 = 临界_创建 () 临界_进入 (临界许可) 临界_退出 (临界许可) 临界_销毁 (临界许可) 输出调试文本 (“临界”, 临界许可.标识) int = 互斥_创建 () 互斥_进入 (int) 互斥_退出 (int) 互斥_关闭 (int) 输出调试文本 (“互斥量”, int) int = 事件_创建 () 事件_触发 (int) 事件_等待进入 (int) 事件_关闭 (int) 输出调试文本 (“事件对象”, int) int = 信号量_创建 (1, 2) 信号量_增加 (int, 1) 信号量_递减 (int) 信号量_关闭 (int) 输出调试文本 (“信号量”, int) 原子_赋值 (int, 0) 原子_递增 (int) 原子_递减 (int) 原子_运算 (int, 1) 原子_判断赋值 (int, 0, 1) 原子_相加_asm (int, 1) 原子_相减_asm (int, 1) 输出调试文本 (“原子锁”, int) int = 线程池_创建 (2) 线程池_投递任务 (int, &Demo_Thread, 1) 线程池_取状态 (int) 线程池_取_是否空闲 (int) 线程池_取_空闲线程数 (int) 线程池_取_执行线程数 (int) 线程池_取_队列任务数 (int) 线程池_取_线程池容量 (int) 线程池_销毁 (int, 0) 输出调试文本 (“线程池”, int) int = 线程池Ex_创建 (2, 3) 线程池Ex_投递任务 (int, &Demo_Thread, 1) 线程池Ex_投递任务 (int, &Demo_Thread, 1) 线程池Ex_暂停 (int) 线程池Ex_继续 (int) 线程池Ex_事件_暂停 (int) 线程池Ex_等待任务动态 (int, 5000) 线程池Ex_取状态 (int) 线程池Ex_取_是否空闲 (int) 线程池Ex_取_空闲线程数 (int) 线程池Ex_取_执行线程数 (int) 线程池Ex_取_队列任务数 (int) 线程池Ex_取_线程池容量 (int) 线程池Ex_置_最大线程数 (int, 3) 线程池Ex_置_空闲回收时间 (int, 100) 线程池Ex_销毁 (int, 0) 输出调试文本 (“线程池Ex”, int) int = 读写锁_创建 () 读写锁_读锁定 (int) 读写锁_解锁 (int) 读写锁_写锁定 (int) 读写锁_解锁 (int) 读写锁_销毁 (int) 输出调试文本 (“读写锁”, int) 线程池_自销毁.创建 (2, 100) 线程池_自销毁.置_线程空闲自销毁超时值 (100) 线程池_自销毁.投递任务 (&Demo_Thread, 1) 线程池_自销毁.取_状态 () 线程池_自销毁.取_是否空闲 () 线程池_自销毁.取_空闲线程数 () 线程池_自销毁.取_执行线程数 () 线程池_自销毁.取_队列任务数 () 线程池_自销毁.取_线程池容量 () bool = 线程池_自销毁.销毁 (0) 输出调试文本 (“线程池_自销毁”, bool) .子程序 Demo_Thread .参数 参数, 整数型 _延时 (20) 输出调试文本 (参数) |
|