【发布时间】:2010-09-05 19:56:16
【问题描述】:
考虑这个问题:我有一个程序应该从数据库中获取(比如说)100 条记录,然后对于每条记录,它都应该从 Web 服务中获取更新的信息。在这种情况下,有两种方法可以引入并行性:
我在新线程上启动对 Web 服务的每个请求。同时线程的数量由一些外部参数控制(或以某种方式动态调整)。
我创建较小的批次(假设每个 10 条记录)并在单独的线程上启动每个批次(以我们的示例为例,10 个线程)。
哪种方法更好,您为什么这么认为?
【问题讨论】:
-
动态/可配置,因为最佳数量完全取决于环境和瓶颈的实际情况。
-
这听起来像是 ThreadPool 的工作。只需将作业排队,然后让 .net 处理其余的工作。
-
@Patrick 好吧,我在考虑动态控制方面的线程池。但我想我想弄清楚这两种方法之间是否存在任何性能差异(实际上,ThreadPool 可以在这两种方法中使用)。如果不是性能,是否应该遵循任何最佳实践。
标签: .net multithreading