【求助】n个线程池是如何动态调用的呢?谢谢!
纯小白刚在研究自学,想请问大神个问题:handshake不知用什么线程池好,可以用数组开池(因为不知用多少个池),每个池子里有多个线程,不同池对应不同类型的任务。
比如说,报表中有100行。1-50行用一个池子让它从1-50慢慢按顺序执行。另一个池子从50-100,也是慢慢从50-100执行。开两个池,是为了同时执行1-50的和50-100的报表项上的任务等
:hug:
麻烦大神抽空帮写个例子,非常感谢!
一个电脑,同时运行的线程数是固定的,开1个池就能跑满了,开那么池干什么呀,
suyan 发表于 2024-12-30 16:11
一个电脑,同时运行的线程数是固定的,开1个池就能跑满了,开那么池干什么呀,
...
因为想同时执行不同的任务,每个线程池都 有一定的任务量,但不同的池有着不同的任务。
是想让不同的任务量能同时执行。
就好比,有三个人,每个人去做十件不同的事,他们各做各的,但是同时执行的。
而不是所有事全部一起做。
或者有什么别的方式么?
一个报表中一般是有一千行,比如每100行是一个线程做的,这样就需要10个线程。
我只是想说,如何让这十个线程同时去做自己的那一百行任务,而那每个线程的一百个任务是需在一个一个的去执行的 一个线程池即可,不同用户标记,做不同任务 suyan 发表于 2024-12-30 16:35
一个线程池即可,不同用户标记,做不同任务
嗯嗯,我现在正在研究,还不懂,大神有空么?麻烦帮我写个例子呗,万分感谢:victory: suyan 发表于 2024-12-30 16:35
一个线程池即可,不同用户标记,做不同任务
谢谢,我用https://bbs.voldp.com/forum.php?mod=viewthread&tid=14940
线程池,有一个线程id来区分线程,分别执行了对应的表项任务,算是实现了我的想法了
<火山程序 类型 = "通常" 版本 = 1 />
方法 线程池类_线程运行 <接收事件 类型 = 整数 折叠>
参数 来源对象 <类型 = 线程池类>
参数 标记值 <类型 = 整数>
参数 线程ID <类型 = 整数>
参数 线程句柄 <类型 = 变整数>
参数 用户参数 <类型 = 变整数>
参数 退出事件 <类型 = 变整数>
{
如果 (来源对象 == 线程池1)
{
// 标签1.调用反馈事件 (0, 线程ID, 假)// 线程中不能直接更新窗口界面,可能会导致死锁. 下同
调试输出 (线程ID)
如果 (线程ID == 1)
{
计次循环 (超级列表框1.取表项数 ())
{
如果 (超级列表框1.取标题 (取循环索引 (), 2) == "1")
{
超级列表框1.置标题 (取循环索引 (), 3, "执行1")
程序_延时 (5, 1)
超级列表框1.置标题 (取循环索引 (), 3, "完成1")
// 标签1.调用反馈事件 (1, 取循环索引 (), 假)
}
}
}
如果 (线程ID == 2)
{
计次循环 (超级列表框1.取表项数 ())
{
如果 (超级列表框1.取标题 (取循环索引 (), 2) == "2")
{
超级列表框1.置标题 (取循环索引 (), 3, "执行2")
程序_延时 (5, 1)
超级列表框1.置标题 (取循环索引 (), 3, "完成2")
// 标签1.调用反馈事件 (2, 取循环索引 (), 假)
}
}
}
// 进行你自己的工作 ...
// 标签1.调用反馈事件 (2, 线程ID, 假)
}
返回 (0)
}
jcos 发表于 2024-12-30 17:15
谢谢,我用https://bbs.voldp.com/forum.php?mod=viewthread&tid=14940
线程池,有一个线程id来区分线程 ...
仰望大佬的线程池2.投递任务时的第1个参数,就可以用来区分不同任务 suyan 发表于 2024-12-30 22:10
仰望大佬的线程池2.投递任务时的第1个参数,就可以用来区分不同任务
:victory:好的,谢谢,我研究一下先
页:
[1]