【发布时间】:2012-06-21 08:51:00
【问题描述】:
我有一个非常大的 CSV 文件(1GB+),它有 100,000 行。
我需要编写一个 Java 程序来解析 CSV 文件中的每一行,以创建一个用于发送 HTTP 请求的正文。
换句话说,我需要发送 100,000 个与 CSV 文件中的行相对应的 HTTP 请求。如果我在一个线程中执行这些操作会很长。
我想创建 1,000 个线程来执行 i) 从 CSV 文件中读取一行,ii) 创建一个 HTTP 请求,其正文包含读取行的内容,以及 iii) 发送 HTTP 请求并接收响应。
这样,我需要将 CSV 文件分成 1000 个块,这些块之间应该没有重叠的行。
这种拆分过程的最佳方法是什么?
【问题讨论】:
-
我有一个非常大的 CSV 文件(1GB+),它有 100,000 行,对于现在的计算机来说它一点也不大。如果您可以使所有 CPU 饱和,那么拥有比 CPU 多得多的线程是错误的。最后它会被绑定在 IO 部门,除非你故意尝试 DoS,否则向服务器发送大量并发请求也不是很明智。