1845-2000万开房数据java多线程写入同一文件源码 源代码
这几天,出现了 2000万开房数据的事情。
好奇心使然,找到种子下载了,发现格式是 csv的。
一个文件好几百兆,大概200万行左右的数据,现在我要解决的问题是,将 csv的数据读出来,组合数据,生成sql文件。
一个技术难点是:多线程写入同一文件,只能有一个线程写,其他线程在等待.网上有很多解决方法,但我自己实现了代码,代码中有做一个 文件内容输出优化,缓存的功能,。
以前单线程跑,跑了一下午才完成,大概跑了几个小时。多线程跑,大概4-5分钟左右。
这个场景在平常开发中也是经常要用到的。
先说明,此代码直接用会报错,因为要用到我自己的工具类,需要手动将 FileUtils.doWriteFile 这些代码 换成 System.out 输出即可

本源码地址:http://www.codehy.com/vip/java/2020/0219/20430.html