【发布时间】:2017-04-10 08:02:36
【问题描述】:
我有一个包含 500.000.000 行的文件。
这些行是最多 10 个字符的字符串。
如何使用多线程和 100 个批量处理此文件?
【问题讨论】:
-
编写代码然后比较它们......或者更好地阅读 SO 文档如何提出一个好问题......
-
多线程对您没有帮助,因为 I/O 是瓶颈,而且您只有一个总线连接到硬盘驱动器。 I/O 在硬件级别进行序列化。即使您有 RAID,也不会有任何区别,因为 I/O 比 CPU 慢得多。我想如果处理如此复杂以至于可以与 I/O 相媲美,这可能很重要,但我怀疑情况是否如此。见stackoverflow.com/questions/902425/…
-
@sashoalm,这取决于对读取行进行的处理。如果处理是 CPU 密集型的,那么多线程仍然有用。在这种情况下,线程数等于CPU核数,这种方法可以达到并行处理的效果。
标签: c# multithreading asynchronous async-await batch-processing