linapex的gravatar头像
linapex 2014-01-23 14:43:55

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

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

 

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

 

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

 

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

 

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

 

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

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

以下是截图:

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


最代码官方编辑于2014-1-23 14:53:26


打赏

文件名:code.rar,文件大小:11.219K 下载
  • /
    • /code.doc
最代码最近下载分享源代码列表最近下载
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日
暂无贡献等级
暂无贡献等级
xuexizhuanyong23  LV16 2022年10月18日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友