火山的线程池多线程任务框架,应该怎么写?
易语言那边,鱼刺线程池估计是大名鼎鼎的,学习易语言的时候,就一直使用下面这套鱼刺多线程框架,稳定奔放。昨晚使用乐易火山模块,也有个类似易语言鱼刺的线程池Ex类,但是我自己照搬写出来的火山多线程框架,效果完全不一样,尤其是取空闲线程数,一直增加,不明所以。
所以,有大佬能参照易语言这套多线程框架,帮忙改个火山多线程框架的例子,学习下吗?
附上易语言版本的鱼刺多线程任务框架例子(包含了启动线程、临界许可):
<火山程序 类型 = "通常" 版本 = 1 />
方法 线程_Demo
{
变量 线程池 <类型 = 类_线程池Ex>
变量 线程数 <类型 = 整数>
变量 任务数 <类型 = 整数>
线程数 = 3
任务数 = 10
如果 (线程池.创建 (线程数, 线程数, , , ) == 假)
{
线程池.销毁 (, , )
调试输出 ("线程池创建失败")
返回
}
否则
{
调试输出 ("线程池创建成功,开始进行线程投递")
}
变量 已完成任务 <类型 = 整数>
变量 欲投递任务数 <类型 = 整数>
信息框_ ("开始")
判断循环 (已完成任务 < 任务数)
{
欲投递任务数 = 线程池.取_空闲线程数 ()
如果 (欲投递任务数 > 任务数 - 已完成任务)
{
欲投递任务数 = 任务数 - 已完成任务
}
计次循环 (欲投递任务数)
{
线程池.投递任务 (取指针_方法 (任务线程), 已完成任务, )
线程池.等待任务动态 (500, )
已完成任务 = 已完成任务 + 1
}
}
判断循环 (线程池.取_是否空闲 () == 假)
{
程序_延时 (1, 1)
}
线程池.销毁 ()
调试输出 ("任务完成!")
}
方法 任务线程 <静态>
参数 索引 <类型 = 整数>
{
调试输出 ("执行线程任务" + 到文本 (索引))
程序_延时 (10000, )
}
页:
[1]