这是【易语言置CPU亲和性稳定的多线程写法】(用于写许可证鱼刺类的源码例子)
如你使用学习易语言,可研究易语言置CPU亲和性稳定的多线程鱼刺类!
源码是一整套【如果有其它疑问,请联系咨询】- 创心域技术网
下载地址:https://www.cxyxt.com/30421.html
源码例子
.程序集 窗口程序集_启动窗口
.程序集变量 许可证, 鱼刺类_临界许可
.程序集变量 线程池, 鱼刺类_线程池Ex
.程序集变量 线程操作, 鱼刺类_线程操作
.子程序 多线程
.局部变量 执行数量, 整数型
.局部变量 线程数量, 整数型
.局部变量 创建状态, 逻辑型
.局部变量 空闲线程, 整数型
.局部变量 投递计次, 整数型
线程操作.置CPU亲和性 ()
执行数量 = 到整数 (编辑框_执行数量.内容)
线程数量 = 到整数 (1)
.如果真 (执行数量 < 线程数量)
线程数量 = 执行数量
.如果真结束
创建状态 = 线程池.创建 (线程数量, 线程数量, , , , , ) ‘ 你给的注册数量或者线程不是0的时候 创建成功
.如果真 (取反 (创建状态)) ‘ 没创建成功
提示框 (“线程创建失败,请重启软件”, , , , )
按钮_提交链接.标题 = “提交链接”
返回 () ‘ 停止了
.如果真结束
‘ —————————————————————
投递计次 = 0
‘ ————————-判断有没有空闲的线程——————
.判断循环首 (投递计次 < 执行数量) ‘ 还没有注册完
空闲线程 = 线程池.取_空闲线程数 () ‘ 0 没有空闲 1 2
.判断循环首 (空闲线程 = 0)
.如果真 (线程池.取_状态 () ≠ 1) ‘ 不要去打扰
返回 ()
.如果真结束
空闲线程 = 线程池.取_空闲线程数 ()
程序_延时 (50, )
.判断循环尾 ()
‘ ——————-说明有空闲线程,开始去注册———————-
.计次循环首 (空闲线程, )
线程池.投递任务 (&任务名, 投递计次, ) ‘————-投递任务
原子_递增 (投递计次)
程序_延时 (50, )
.计次循环尾 ()
.判断循环尾 ()
‘ ——————已经注册任务已经投递,不能保证已经注册完成了———–
.判断循环首 (线程池.取_是否有空闲 () = 假) ‘ 100个员工开始干活了 没有干完
.如果真 (线程池.取_状态 () ≠ 1)
返回 ()
.如果真结束
程序_延时 (50, )
.判断循环尾 ()
‘ ——————所有任务完成了————————————-
线程池.销毁 (0, 真)