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


tangjj7260 LV18
2021年11月12日
xwb666 LV1
2021年11月11日
LuciferYYking LV1
2021年9月27日
wabao LV1
2021年9月26日
Aurora_磊 LV9
2021年9月15日
newbag LV9
2021年7月16日
frunkleng LV11
2021年7月1日
zzyzzyzzy12345 LV3
2021年6月16日
雨墨来兮 LV4
2021年5月19日
gshnlj LV15
2021年4月16日

vluobo LV1
2024年3月19日
dapeng0011 LV15
2024年2月25日
Jjjj1111 LV5
2023年11月12日
maniheim LV7
2023年9月28日
yumu114514
2023年7月29日
暂无贡献等级
大裤衩
2023年6月16日
暂无贡献等级
dixiu000 LV4
2023年4月14日
sdqmh2004
2023年2月4日
暂无贡献等级
微信网友_6207513263607808
2022年11月6日
暂无贡献等级
xuexizhuanyong23 LV16
2022年10月18日