使用线程划分一个巨大的文件

时间:2015-08-07 15:27:56

标签: java multithreading countdownlatch completable-future

我有一个包含>的文本文件5亿行,结构如下:

54517. lat:53.533459; lon:8.8005426; path:c:\brem_5.xml;
54518. lat:53.037579; lon:8.800404; path:c:\brem_5.xml;
54519. lat:53.03358275; lon:8.610994; path:c:\brem_5.xml;
54520. lat:53.027389; lon:8.797809; path:c:\brem_6.xml;
54521. lat:53.043866; lon:8.7971675; path:c:\brem_7.xml;
54522. lat:53.0311901; lon:8.794269; path:c:\brem_7.xml;
....
....
....

我正在写一个给出" lat"和" lon"它应该返回路径。我想把大文件分成几个部分" sec0,sec1,sec2,sec3,...,secn",然后为每个部分创建线程,查找" lat"和" lon",当一个线程返回路径时,其他线程将被杀死。

我的问题是,我的方法是否有效?什么是这种问题的最佳解决方案。

1 个答案:

答案 0 :(得分:2)

我建议使用MySQL。创建一个表; ID,Lat,Long,Path。编写一个脚本以插入所有数据。然后解析像select path from table where lat = x and long = y

这样的数据