首页 新闻 赞助 找找看

C# 自定义 threadpool 设置大小

0
悬赏园豆:50 [已解决问题] 解决于 2019-12-10 15:07

我想每张表用两个线程入库 有5张表 要求他们的线程池分开

天不遮我的主页 天不遮我 | 初学一级 | 园豆:66
提问于:2019-12-10 10:25
< >
分享
最佳答案
0

每一个AppDomain中只有一个线程池,想要有多个线程池,有几个方法

  1. 新建额外的AppDomain,这样就有了额外的线程池。不过AppDomain之间是相互隔离的,操作起来不怎么方便。
  2. 自行实现线程池,线程池也就是个线程的对象池,实现起来难度还可以。
  3. 使用第三方的线程池实现,比如SmartThreadPool。

不过,为啥需要分开线程池呢,而且,为什么每张表要用两个线程入库,好像没有什么好处。

收获园豆:50
拓拓 | 小虾三级 |园豆:1050 | 2019-12-10 13:41

用两个线程入库是因为测试的时候两个线程比一个线程入库要快50%
因为业务上入库时需要异步的,所以现在入库的数据是放在一个队列中的,消费线程去队列中消费数据,然后组批入库。我想消费队列组批完成后交给线程池去入库。

天不遮我 | 园豆:66 (初学一级) | 2019-12-10 14:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册