线程池大小怎么根据数据量大小设置

线程池大小怎么根据数据量大小设置

秉烛思 发布于 2021-11-28 字数 392 浏览 856 回复 10

我现在要做一个功能 ,用户通过上传xsl表格来进行数据的插入,有的用户xsl表格中的数据可能有
1万条,而有的用户xsl表格则只有
20多条,我为了能让数据快速的插入,这个功能我使用线程池来做,现在我的问题是我的
线程池应该设置为多大比较合适呢?因为每个用户插入的数据相差太大了,不知道要设置多大的好?还有一个问题是,

让所有用户都使用同一个线程池比较好呢?还是每一个用户一个线程池比较好?在这里先谢谢大家

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

巡山小妖精 2021-12-01 10 楼

如果一定要用线程池,肯定是用一个,用户数量一般都会超过机器允许打开的最大线程数的.

这个问题可以使用队列来解决, 所有数据上传上来都插入到一张表中,然后一个程序从这张表中慢慢处理,当然这个程序可以使用线程池

残花月 2021-12-01 9 楼

其实你想复杂了,  你需要做的是, 将xls保存下来,再记录一个工单表,然后有个扫描程序去触发入库工单, 依次将xls入库即可,  不需要弄线程池什么的那么复杂,能异步的就尽量异步.

还有你的用户上传1w条记录的操作在10秒内有100次么? 如果有并且有操作超过1分钟的延迟记录,那么还是买点cpu和内存吧. 折腾这种耗内存和cpu的东西,还是尽量简单的好.

醉生梦死 2021-12-01 8 楼

引用来自“Adairs”的评论

兄弟,这样还是不行的,因为查检的时候是一条一条地检查的,并且还要查询数据库中其他表来进行校验的,当有一万条时,则会很慢

那你在使用多线程插入的时候,也要检查啊。

少女净妖师 2021-12-01 7 楼

如果要使用多线程,你要设定的,不是多少个线程,而是考虑同时操作的有多少人,你服务器可以承受的最大并发是多少?

让所有用户都使用同一个线程池比较好呢?还是每一个用户一个线程池比较好?

这个问题,感觉你对线程池就不了解啊,线程池就是一个,没有一个用户一个线程池的说法。线程池的线程是共享的。

野心澎湃 2021-12-01 6 楼

兄弟,这样还是不行的,因为查检的时候是一条一条地检查的,并且还要查询数据库中其他表来进行校验的,当有一万条时,则会很慢

那你在使用多线程插入的时候,也要检查啊。

奢望 2021-12-01 5 楼

我只能说一万条并不慢。。。

复古式 2021-12-01 4 楼

引用来自“Adairs”的评论

使用线程池来快速插入,这个不建议,可以直接使用数据库的批量插入功能来完成。

一批数据插入一次,这样会快N倍。

谁的新欢旧爱 2021-12-01 3 楼

引用来自“Adairs”的评论

使用线程池来快速插入,这个不建议,可以直接使用数据库的批量插入功能来完成。

一批数据插入一次,这样会快N倍。

躲猫猫 2021-12-01 2 楼

引用来自“Adairs”的评论

使用线程池来快速插入,这个不建议,可以直接使用数据库的批量插入功能来完成。

一批数据插入一次,这样会快N倍。

狠疯拽 2021-11-30 1 楼

使用线程池来快速插入,这个不建议,可以直接使用数据库的批量插入功能来完成。

一批数据插入一次,这样会快N倍。