您的位置:首页 > 其它

2000万开房数据【多线程】写入同一文件

2015-11-01 10:06 387 查看
原文:2000万开房数据【多线程】写入同一文件

源代码下载地址:http://www.zuidaima.com/share/1665015160769536.htm

这几天,出现了 2000万开房数据的事情。

 

好奇心使然,找到种子下载了,发现格式是 csv的。

 

一个文件好几百兆,大概200万行左右的数据,现在我要解决的问题是,将 csv的数据读出来,组合数据,生成sql文件。

 

一个技术难点是:多线程写入同一文件,只能有一个线程写,其他线程在等待.网上有很多解决方法,但我自己实现了代码,代码中有做一个 文件内容输出优化,缓存的功能,。

 

以前单线程跑,跑了一下午才完成,大概跑了几个小时。多线程跑,大概4-5分钟左右。

 

这个场景在平常开发中也是经常要用到的。

先说明,此代码直接用会报错,因为要用到我自己的工具类,需要手动将 FileUtils.doWriteFile 这些代码 换成 System.out 输出即可。

以下是截图:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息